From f21e1ae4b858b6a329b717eaf420d4a1e79d9509 Mon Sep 17 00:00:00 2001
From: Guo_shaoshan <2055829622@qq.com>
Date: 星期一, 24 四月 2023 15:53:47 +0800
Subject: [PATCH] 自传和通讯录界面(未完成未修改)

---
 app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java                                  |    2 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java    |   23 
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceHolderConditionBean.java         |   22 
 app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java                      |   40 +
 app/src/main/res/layout/item_growth_experience_primary.xml                                                   |    4 
 app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyContactsRvAdapter.java                  |  130 ++++
 app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java    |  330 +++++++++--
 app/src/main/res/layout/item_growth_experience_holder_condition.xml                                          |   10 
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAbroadConditionBean.java         |   19 
 app/src/main/res/values/colors.xml                                                                           |    1 
 app/src/main/java/com/application/zhangshi_app_android/bean/FamilyContactsBean.java                          |   19 
 app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java                       |   35 +
 app/src/main/res/layout/activity_contacts.xml                                                                |  119 ++++
 app/src/main/res/layout/activity_growth_experience.xml                                                       |   59 +
 app/src/main/res/layout/item_contacts.xml                                                                    |  118 ++++
 app/build.gradle                                                                                             |    1 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java                     |   96 +++
 app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java             |  126 +++
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAutobiographyBean.java           |   23 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java         |   19 
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java             |   70 ++
 app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java                              |   58 +
 app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java                                |   15 
 app/src/main/res/layout/item_growth_experience_relationship.xml                                              |   12 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java |   21 
 app/src/main/res/drawable/mail_list_pic.png                                                                  |    0 
 app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java |   26 
 app/src/main/res/layout/item_growth_experience_abroad_condition.xml                                          |    8 
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java            |   97 +++
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java                        |  110 +--
 app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceRelationshipBean.java            |   23 
 app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java              |   51 +
 app/src/main/res/drawable/shape_fffad1e0_stroke.xml                                                          |    5 
 33 files changed, 1,441 insertions(+), 251 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index c75ca12..f8cf1da 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -57,6 +57,7 @@
     implementation 'androidx.annotation:annotation:1.3.0'
     implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.1'
     implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1'
+    implementation 'com.google.android.material:material:1.8.0'
     testImplementation 'junit:junit:4.13.2'
     androidTestImplementation 'androidx.test.ext:junit:1.1.5'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
diff --git a/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyContactsRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyContactsRvAdapter.java
new file mode 100644
index 0000000..5e1b145
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyContactsRvAdapter.java
@@ -0,0 +1,130 @@
+package com.application.zhangshi_app_android.adapter;
+
+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.manager.AppManager;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.FamilyContactsBean;
+import com.application.zhangshi_app_android.databinding.ItemContactsBinding;
+import com.application.zhangshi_app_android.ui.function.ContactsActivity;
+import com.application.zhangshi_app_android.ui.function.ContactsActivityViewModel;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author Gss
+ * @date 2023.04.18. 19:52
+ * @desc 閫氳褰� recyclerView 鐨� adapter
+ */
+public class FamilyContactsRvAdapter extends BaseRVAdapter<FamilyContactsBean, ItemContactsBinding, FamilyContactsRvAdapter.ViewHolder> {
+
+    private ContactsActivityViewModel viewModel;
+
+    public FamilyContactsRvAdapter(Context context) {
+        super(context);
+    }
+
+    public FamilyContactsRvAdapter(Context context, ContactsActivityViewModel viewModel) {
+        super(context);
+        this.viewModel = viewModel;
+    }
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.item_contacts;
+    }
+
+    @Override
+    protected ViewHolder getViewHolder(ItemContactsBinding itemBind) {
+        return new ViewHolder(itemBind);
+    }
+
+    @Override
+    protected void onBind(ViewHolder 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(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();
+                        }
+
+                        @Override
+                        public boolean willChangeBounds() {
+                            return true;
+                        }
+                    };
+                    a.setDuration(500);
+                    holder.getBinding().cardView.startAnimation(a);
+                    holder.isExpended = 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;
+                }
+            }
+        });
+
+    }
+
+
+    public void setData(Object familyContactsBeans) {
+    }
+
+    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/GrowthExperienceAbroadConditionRvAdapter.java b/app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java
index b6bf3c3..282e57e 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
@@ -1,28 +1,33 @@
 package com.application.zhangshi_app_android.adapter;
+
 import android.content.Context;
 import android.content.Intent;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
 import android.widget.FrameLayout;
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
 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.GrowthExperienceAbroadConditionBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
 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.List;
 
 /**
  * @author Gss
- * @date 2023.04.08. 17:08
- * @desc 鎴愰暱缁忓巻(鍑哄浗(澧�)鎯呭喌) recyclerView 鐨� adapter
+ * @date 2023.04.07. 21:31
+ * @desc 鎴愰暱缁忓巻(鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�) recyclerView 鐨� adapter
  */
-public class GrowthExperienceAbroadConditionRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceAbroadConditionBinding, GrowthExperienceAbroadConditionRvAdapter.ViewHolder> {
+public class GrowthExperienceAbroadConditionRvAdapter extends BaseRVAdapter<GrowthExperienceAbroadConditionBean, ItemGrowthExperienceAbroadConditionBinding, GrowthExperienceAbroadConditionRvAdapter.ViewHolder> {
 
     private GrowthExperienceActivityViewModel viewModel;
 
@@ -33,6 +38,10 @@
     public GrowthExperienceAbroadConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) {
         super(context);
         this.viewModel = viewModel;
+    }
+
+    public GrowthExperienceAbroadConditionRvAdapter(GrowthExperienceActivity growthExperienceActivity) {
+        super(growthExperienceActivity);
     }
 
     @Override
@@ -49,7 +58,7 @@
     protected void onBind(ViewHolder holder, int position) {
         holder.getBinding().setBean(mDataList.get(position));
         if (position % 2 != 0){
-            holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue));
+            holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_green));
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
@@ -103,11 +112,7 @@
                 }
             }
         });
-        holder.getBinding().layoutContent.setOnClickListener(v -> {
-            AppManager.getAppManager().startActivity(
-                    new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class)
-                            .putExtra("bean",mDataList.get(position)));
-        });
+
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceAbroadConditionBinding>{
@@ -118,6 +123,7 @@
         }
     }
 
+
 }
 
 
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 008b3ed..0c49e83 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
@@ -2,28 +2,32 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
 import android.widget.FrameLayout;
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
 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.GrowthExperienceBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean;
 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.List;
 
 /**
  * @author Gss
- * @date 2023.04.08. 17:08
+ * @date 2023.04.07. 21:31
  * @desc 鎴愰暱缁忓巻(鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�) recyclerView 鐨� adapter
  */
-public class GrowthExperienceHolderConditionRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceHolderConditionBinding, GrowthExperienceHolderConditionRvAdapter.ViewHolder> {
+public class GrowthExperienceHolderConditionRvAdapter extends BaseRVAdapter<GrowthExperienceHolderConditionBean, ItemGrowthExperienceHolderConditionBinding, GrowthExperienceHolderConditionRvAdapter.ViewHolder> {
 
     private GrowthExperienceActivityViewModel viewModel;
 
@@ -34,6 +38,10 @@
     public GrowthExperienceHolderConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) {
         super(context);
         this.viewModel = viewModel;
+    }
+
+    public GrowthExperienceHolderConditionRvAdapter(GrowthExperienceActivity growthExperienceActivity) {
+        super(growthExperienceActivity);
     }
 
     @Override
@@ -104,11 +112,7 @@
                 }
             }
         });
-        holder.getBinding().layoutContent.setOnClickListener(v -> {
-            AppManager.getAppManager().startActivity(
-                    new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class)
-                            .putExtra("bean",mDataList.get(position)));
-        });
+
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceHolderConditionBinding>{
@@ -119,6 +123,7 @@
         }
     }
 
+
 }
 
 
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 3f003b1..b68e60b 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
@@ -31,11 +31,9 @@
 public class GrowthExperiencePrimaryRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperiencePrimaryBinding, GrowthExperiencePrimaryRvAdapter.ViewHolder> {
 
     private GrowthExperienceActivityViewModel viewModel;
-    private List<GrowthExperienceBean> mDataList;
 
-    public GrowthExperiencePrimaryRvAdapter(Context context,List<GrowthExperienceBean> dataList) {
+    public GrowthExperiencePrimaryRvAdapter(Context context) {
         super(context);
-        mDataList = dataList;
     }
 
     public GrowthExperiencePrimaryRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) {
@@ -47,10 +45,6 @@
         super(growthExperienceActivity);
     }
 
-    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-        ItemGrowthExperiencePrimaryBinding itemBind = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),getLayoutId(),parent,false);
-        return new ViewHolder(itemBind);
-    }
     @Override
     protected int getLayoutId() {
         return R.layout.item_growth_experience_primary;
@@ -63,7 +57,9 @@
 
     @Override
     protected void onBind(ViewHolder 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 {
@@ -119,23 +115,18 @@
                 }
             }
         });
-        holder.getBinding().layoutContent.setOnClickListener(v -> {
-            AppManager.getAppManager().startActivity(
-                    new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class)
-                            .putExtra("bean",mDataList.get(position)));
-        });
+
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperiencePrimaryBinding>{
         private boolean isExpended;
-        private ItemGrowthExperiencePrimaryBinding binding;
 
         public ViewHolder(ItemGrowthExperiencePrimaryBinding binding) {
             super(binding);
-            binding=ItemGrowthExperiencePrimaryBinding.inflate(LayoutInflater.from(itemBind.getContext()),(ViewGroup) itemBind,false);
         }
     }
 
+
 }
 
 
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 0e36b9a..a9a5c2d 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
@@ -2,28 +2,32 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.animation.Animation;
 import android.view.animation.Transformation;
 import android.widget.FrameLayout;
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
 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.GrowthExperienceBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean;
 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.List;
 
 /**
  * @author Gss
- * @date 2023.04.08. 17:08
+ * @date 2023.04.07. 21:31
  * @desc 鎴愰暱缁忓巻(瀹跺涵鎴愬憳鍙婁富瑕佺ぞ浼氬叧绯绘儏鍐�) recyclerView 鐨� adapter
  */
-public class GrowthExperienceRelationshipRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceRelationshipBinding, GrowthExperienceRelationshipRvAdapter.ViewHolder> {
+public class GrowthExperienceRelationshipRvAdapter extends BaseRVAdapter<GrowthExperienceRelationshipBean, ItemGrowthExperienceRelationshipBinding, GrowthExperienceRelationshipRvAdapter.ViewHolder> {
 
     private GrowthExperienceActivityViewModel viewModel;
 
@@ -34,6 +38,10 @@
     public GrowthExperienceRelationshipRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) {
         super(context);
         this.viewModel = viewModel;
+    }
+
+    public GrowthExperienceRelationshipRvAdapter(GrowthExperienceActivity growthExperienceActivity) {
+        super(growthExperienceActivity);
     }
 
     @Override
@@ -50,7 +58,7 @@
     protected void onBind(ViewHolder holder, int position) {
         holder.getBinding().setBean(mDataList.get(position));
         if (position % 2 != 0){
-            holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue));
+            holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_green));
         }else {
             holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink));
         }
@@ -104,11 +112,7 @@
                 }
             }
         });
-        holder.getBinding().layoutContent.setOnClickListener(v -> {
-            AppManager.getAppManager().startActivity(
-                    new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class)
-                            .putExtra("bean",mDataList.get(position)));
-        });
+
     }
 
     public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceRelationshipBinding>{
@@ -119,6 +123,7 @@
         }
     }
 
+
 }
 
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyContactsBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyContactsBean.java
new file mode 100644
index 0000000..7e63a67
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/FamilyContactsBean.java
@@ -0,0 +1,19 @@
+package com.application.zhangshi_app_android.bean;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class FamilyContactsBean implements Serializable {
+    private long id;
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public List<FamilyContactsBean> getData() {
+        return null;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAbroadConditionBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAbroadConditionBean.java
new file mode 100644
index 0000000..e393883
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAbroadConditionBean.java
@@ -0,0 +1,19 @@
+package com.application.zhangshi_app_android.bean;
+
+public class GrowthExperienceAbroadConditionBean {
+    private String userId;
+    private String destination;
+    private String cause;
+    private String startDate;
+
+
+    public String getUserId() { return userId; }
+    public void setUserId(String value) { this.userId = value; }
+    public String getDestination() { return destination; }
+    public void setDestination(String value) { this.destination = value; }
+    public String getCause() { return cause; }
+    public void setCause(String value) { this.cause = value; }
+
+    public String getStartDate() { return startDate; }
+    public void setStartDate(String value) { this.startDate = value; }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAutobiographyBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAutobiographyBean.java
new file mode 100644
index 0000000..1236522
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceAutobiographyBean.java
@@ -0,0 +1,23 @@
+package com.application.zhangshi_app_android.bean;
+import java.io.Serializable;
+import java.util.List;
+
+public class GrowthExperienceAutobiographyBean implements Serializable{
+
+    //杩欎釜鏃堕棿鏄庢樉鍜岃璁$涓婄殑瀵瑰簲涓嶄笂
+   // 浣犲氨寰楁壘鍚庡彴闂竴闂�   浣犵湅涓嶆噦涓枃鍚楋紵锛燂紵
+    private String content;
+    private int type;
+    public String getContent() {
+        return content;
+    }
+    public void setContent(String content) {
+        this.content = content;
+    }
+    public int getType() {
+        return type;
+    }
+    public void setType(int type) {
+        this.type = type;
+    }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java
index 88bf538..1ab559f 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java
@@ -8,89 +8,53 @@
  * @date 2023.03.31. 17:47
  * @desc 鎴愰暱缁忓巻 bean 绫�
  */
-public class GrowthExperienceBean implements Serializable {
-    private String idName;
+public class GrowthExperienceBean implements Serializable{
+
+    private String id;
+    private String userId;
+    private String content;
+    private String startDate;
     private String witness;
-    private  String usedName;
-    private  String gender;
-    private String associate;
-    private  String nationality;
-    private  String ethnicGroup;
-    private  String marriageCondition;
-    private  String politicalStatus;
-    private  String contactNumber;
-    private  String idNumber;
-    private  String residenceNumber;
-    private  String reason;
-    private String address;
-    private String identity;
-    private  String duringTime;
-    private  String duringYear;
-    private  String relationship;
-    private  String School;
-    private  String passCheck;
-    private  String abroadZone;
-    private List<String> url;
-    public GrowthExperienceBean(String mDuringYear,String school,String name){
-        idName=name;
-        School=school;
-        duringYear=mDuringYear;
+
+
+    public String getId() {
+        return id;
     }
-    public String getAddress() { return address; }
-    public void setAddress(String value) { this.address = value; }
 
-    public String getIdName() { return idName; }
-    public void setIdName(String value) { this.idName = value; }
-    public String getUsedName() { return usedName; }
-    public void setUsedName(String value) { this.usedName = value; }
-    public String getAssociate() { return associate; }
-    public void setAssociate(String value) { this.associate = value; }
+    public void setId(String id) {
+        this.id = id;
+    }
 
-    public String getWitness() { return witness; }
-    public void setWitness(String value) { this.witness = value; }
-    public String getIdentity() { return identity; }
-    public void setIdentity(String value) { this.identity = value; }
-    public String getGender() { return gender; }
-    public void setGender(String value) { this.gender = value; }
-    public String getReason() { return reason; }
-    public void setReason(String value) { this.reason = value; }
-    public String getNationality() { return nationality; }
-    public void setNationality(String value) { this.nationality = value; }
+    public String getUserId() {
+        return userId;
+    }
 
-    public String getEthnicGroup() { return ethnicGroup; }
-    public void setEthnicGroup(String value) { this.ethnicGroup = value; }
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
 
-    public String getMarriageCondition() { return marriageCondition; }
-    public void setMarriageCondition(String value) { this.marriageCondition = value; }
+    public String getContent() {
+        return content;
+    }
 
-    public String getPoliticalStatus() { return politicalStatus; }
-    public void setPoliticalStatus(String value) { this.politicalStatus = value; }
+    public void setContent(String content) {
+        this.content = content;
+    }
 
-    public String getContactNumber() { return contactNumber; }
-    public void setContactNumber(String value) { this.contactNumber = value; }
+    public String getStartDate() {
+        return startDate;
+    }
 
-    public String getIdNumber() { return idNumber; }
-    public void setIdNumber(String value) { this.idNumber = value; }
-    public String getResidenceNumber() { return idNumber; }
-    public void setResidenceNumber(String value) { this.idNumber = value; }
-    public String getDuringTime() { return duringTime; }
-    public void setDuringTime(String value) { this.duringTime = value; }
-    public String getDuringYear() { return duringYear; }
-    public void setDuringYear(String value) { this.duringYear = value; }
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
 
-    public String getSchool() { return School; }
-    public void setSchool(String value) { this.School = value; }
+    public String getWitness() {
+        return witness;
+    }
 
-    public String getRelationship() { return relationship; }
-    public void setRelationship(String value) { this.relationship = value; }
-
-    public String getPassCheck() { return passCheck; }
-    public void setPassCheck(String value) { this.passCheck = value; }
-    public String getAbroadZone() { return abroadZone; }
-    public void setAbroadZone(String value) { this.abroadZone = value; }
-    public List<String> getUrl() { return url; }
-    public void setUrl(List<String> value) { this.url = value; }
-
-
+    public void setWitness(String witness) {
+        this.witness = witness;
+    }
 }
 
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceHolderConditionBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceHolderConditionBean.java
new file mode 100644
index 0000000..ea24952
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceHolderConditionBean.java
@@ -0,0 +1,22 @@
+package com.application.zhangshi_app_android.bean;
+
+public class GrowthExperienceHolderConditionBean {
+    private String userId;
+    private String cerName;
+    private String idNo;
+    private String validityDate;
+    private String ownStatus;
+
+    public String getUserId() { return userId; }
+    public void setUserId(String value) { this.userId = value; }
+    public String getCerName() { return cerName; }
+    public void setCerName(String value) { this.cerName = value; }
+    public String getIdNo() { return idNo; }
+    public void setIdNo(String value) { this.idNo = value; }
+
+    public String getValidityDate() { return validityDate; }
+    public void setValidityDate(String value) { this.validityDate = value; }
+
+    public String getOwnStatus() { return ownStatus; }
+    public void setOwnStatus(String value) { this.ownStatus = 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
new file mode 100644
index 0000000..8acae11
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceInformationBean.java
@@ -0,0 +1,70 @@
+package com.application.zhangshi_app_android.bean;
+import java.io.Serializable;
+import java.util.List;
+/**
+ * @author Gss
+ * @date 2023.03.31. 17:47
+ * @desc 鎴愰暱缁忓巻涓汉鍩烘湰淇℃伅 bean 绫�
+ */
+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; }
+
+    public String getLocationAddress() { return locationAddress; }
+    public void setLocationAddress(String value) { this.locationAddress = value; }
+
+    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; }
+}
diff --git a/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceRelationshipBean.java b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceRelationshipBean.java
new file mode 100644
index 0000000..c901ad8
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceRelationshipBean.java
@@ -0,0 +1,23 @@
+package com.application.zhangshi_app_android.bean;
+
+public class GrowthExperienceRelationshipBean {
+        private String nickName;
+        private String relation;
+        private String unit;
+        private String position;
+        private String politicalOutlook;
+
+    public String getNickName() { return nickName; }
+    public void setNickName(String value) { this.nickName = value; }
+    public String getRelation() { return relation; }
+    public void setRelation(String value) { this.relation = 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 String getPoliticalOutlook() { return politicalOutlook; }
+    public void setPoliticalOutlook(String value) { this.politicalOutlook = value; }
+
+    }
+
+
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 0ebf908..1d855b0 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
@@ -6,12 +6,19 @@
 import com.android.app_base.http.ResultData;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
 import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
+import com.application.zhangshi_app_android.bean.FamilyContactsBean;
 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.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.GrowthExperienceResponseBean;
 import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
 import com.application.zhangshi_app_android.bean.LoginResponseBean;
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
@@ -141,9 +148,54 @@
     /**
      * 鑾峰彇鎴愰暱缁忓巻
      */
-       public Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap) {
-             return mHttpDataSource.getGrowthExperience(paramsMap);
-          }
+    public Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience() {
+        return mHttpDataSource.getGrowthExperience();
+    }
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻涓汉淇℃伅
+     */
+    public Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation() {
+        return mHttpDataSource.getGrowthExperienceInformation();
+    }
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鍏崇郴鎯呭喌
+     */
+    public Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship() {
+        return mHttpDataSource.getGrowthExperienceRelationship();
+    }
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�
+     */
+    public Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition() {
+        return mHttpDataSource.getGrowthExperienceHolderCondition();
+    }
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鍑哄浗澧冩儏鍐�
+     */
+    public Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition() {
+        return mHttpDataSource.getGrowthExperienceAbroadCondition();
+    }
+
+
+    /**
+     * 鑾峰彇鑷紶
+     */
+    @Override
+    public Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography() {
+        return mHttpDataSource.getGrowthExperienceAutobiography();
+    }
+
+
+
+    /**
+     * 鑾峰彇閫氳褰�
+     */
+    public Observable<ResultData<FamilyContactsBean>> getFamilyContacts(Map<String, Object> paramsMap) {
+        return mHttpDataSource.getFamilyContacts(paramsMap);
+    }
 
     /**
      * @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 191667b..10a2db8 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
@@ -3,9 +3,16 @@
 import com.android.app_base.http.ResultData;
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
 import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
+import com.application.zhangshi_app_android.bean.FamilyContactsBean;
 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.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.GrowthExperienceResponseBean;
 import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
@@ -76,7 +83,33 @@
     /**
      * 鑾峰彇鎴愰暱缁忓巻
      */
-    Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap);
+    Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience();
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻涓汉淇℃伅
+     */
+    Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation();
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鍏崇郴鎯呭喌
+     */
+    Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship();
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�
+     */
+    Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition();
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鍑哄浗澧冩儏鍐�
+     */
+    Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition();
+    /**
+     * 鑾峰彇鑷紶
+     */
+    Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography();
+    /**
+     * 鑾峰彇閫氳褰�
+     */
+    Observable<ResultData<FamilyContactsBean>> getFamilyContacts(Map<String, Object> paramsMap);
 }
 
 
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 d647cce..87fc335 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
@@ -6,6 +6,12 @@
 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.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.GrowthExperienceResponseBean;
 import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean;
 import com.application.zhangshi_app_android.bean.LoginRequestBean;
@@ -94,8 +100,38 @@
     Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(@QueryMap Map<String, Object> paramsMap);
 
     /**
+     * 鑾峰彇鎴愰暱缁忓巻涓汉淇℃伅
+     */
+    @GET("/self/user")
+    Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation();
+
+    /**
      * 鑾峰彇鎴愰暱缁忓巻锛堜富瑕佸涔犲強宸ヤ綔缁忓巻锛�
      */
-    @GET("/growthExperience")
-    Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(@QueryMap Map<String, Object> paramsMap);
+    @GET("/zExperience/all")
+    Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience();
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻锛堝搴垚鍛樺強涓昏绀句細鍏崇郴鎯呭喌锛�
+     */
+    @GET("/self/user/relation")
+    Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship();
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻锛堟寔鏈夊嚭鍏ュ璇佷欢鎯呭喌锛�
+     */
+    @GET("/zCertificate/all")
+    Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition();
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻锛堝嚭鍥藉鎯呭喌锛�
+     */
+    @GET("/zAbroad/all")
+    Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition();
+    /**
+     * 鑾峰彇鑷紶
+     */
+    @GET("/zAutobiography/all")
+    Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography();
+
 }
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 3b71fbb..a69381c 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
@@ -5,9 +5,13 @@
 import com.application.zhangshi_app_android.bean.CaptchaImageBean;
 import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean;
 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.GrowthExperienceResponseBean;
+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.LoginRequestBean;
 import com.application.zhangshi_app_android.bean.LoginResponseBean;
@@ -15,6 +19,7 @@
 import com.application.zhangshi_app_android.bean.UploadFileResponseBean;
 import com.application.zhangshi_app_android.data.source.HttpDataSource;
 
+import java.util.List;
 import java.util.Map;
 
 import io.reactivex.Observable;
@@ -131,7 +136,45 @@
      * 鑾峰彇鎴愰暱缁忓巻
      */
     @Override
-    public Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap) {
-        return apiService.getGrowthExperience(paramsMap);
+    public Observable<ResultData<List<GrowthExperienceBean>>> getGrowthExperience() {
+        return apiService.getGrowthExperience();
     }
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻涓汉淇℃伅
+     */
+    @Override
+    public Observable<ResultData<GrowthExperienceInformationBean>> getGrowthExperienceInformation() {
+        return apiService.getGrowthExperienceInformation();
+    }
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鍏崇郴鎯呭喌
+     */
+    @Override
+    public Observable<ResultData<List<GrowthExperienceRelationshipBean>>> getGrowthExperienceRelationship() {
+        return apiService.getGrowthExperienceRelationship();
+    }
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�
+     */
+    @Override
+    public Observable<ResultData<List<GrowthExperienceHolderConditionBean>>> getGrowthExperienceHolderCondition() {
+        return apiService.getGrowthExperienceHolderCondition();
+    }
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻鍑哄浗澧冩儏鍐�
+     */
+    @Override
+    public Observable<ResultData<List<GrowthExperienceAbroadConditionBean>>> getGrowthExperienceAbroadCondition() {
+        return apiService.getGrowthExperienceAbroadCondition();
+    }
+
+    /**
+     * 鑾峰彇鑷紶
+     */
+    @Override
+    public Observable<ResultData<List<GrowthExperienceAutobiographyBean>>> getGrowthExperienceAutobiography() {
+        return apiService.getGrowthExperienceAutobiography();
+    }
+
 }
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 3ca1666..210c009 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
@@ -91,11 +91,16 @@
             classMap.put(null,(LinearLayout) findViewById(R.id.dl_privacy));
             setSelectItem(classMap.get(getClass()));
             for (Map.Entry<Class, LinearLayout> set : classMap.entrySet()) {
-                set.getValue().setOnClickListener(v -> {
-                    if (set.getKey() != null){
-                        AppManager.getAppManager().startActivity(set.getKey());
-                    }
-                });
+                LinearLayout linearLayout = set.getValue();
+                if (linearLayout != null) {
+                    linearLayout.setOnClickListener(v -> {
+                        if (set.getKey() != null){
+                            AppManager.getAppManager().startActivity(set.getKey());
+                        }
+                    });
+                } else {
+
+                }
             }
             mDrawerLayout.setScrimColor(getResources().getColor(R.color.color_shadow));
         }
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
new file mode 100644
index 0000000..af8cd4c
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivity.java
@@ -0,0 +1,96 @@
+package com.application.zhangshi_app_android.ui.function;
+import android.graphics.drawable.ColorDrawable;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.PopupWindow;
+
+import androidx.databinding.library.baseAdapters.BR;
+import androidx.lifecycle.Observer;
+
+import com.android.app_base.base.viewmodel.BaseViewModel;
+import com.android.app_base.utils.ScreenSizeUtils;
+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.adapter.FamilyContactsRvAdapter;
+import com.application.zhangshi_app_android.bean.FamilyContactsBean;
+import com.application.zhangshi_app_android.databinding.ActivityContactsBinding;
+;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+
+import java.util.List;
+/**
+ * @author Gss
+ * @date 2023.04.18. 20:33
+ * @desc
+ */
+public class ContactsActivity<FamilyContactsActivityViewModel extends BaseViewModel> extends DLBaseActivity<ActivityContactsBinding,FamilyContactsActivityViewModel> {
+    private FamilyContactsRvAdapter adapter;
+    private PopupWindow mOperatePopupWindow;
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_contacts;
+    }
+
+    @Override
+    public int getVariableId() {
+        return BR.viewModel;
+    }
+
+    @Override
+    public void initParam() {
+
+    }
+
+    @Override
+    public void initView() {
+        adapter = new FamilyContactsRvAdapter(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);
+
+        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);
+
+        binding.ivOperate.setOnClickListener(v -> {
+            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+        });
+    }
+
+    @Override
+    public void initData() {
+        viewModel.getFamilyContacts();
+    }
+
+    @Override
+    public void initLiveDataObserve() {
+        viewModel.getDataListLiveData().observe(this, familyContactsBeans -> {
+            adapter.setData(familyContactsBeans);
+        });
+    }
+
+    private 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_add);
+        // 璁剧疆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;
+    }
+}
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
new file mode 100644
index 0000000..c9961d4
--- /dev/null
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ContactsActivityViewModel.java
@@ -0,0 +1,97 @@
+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.FamilyContactsBean;
+
+import com.application.zhangshi_app_android.data.DataRepository;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+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;
+/**
+ * @author Gss
+ * @date 2023.04.18. 19:54
+ * @desc 閫氳褰� ViewModel
+ */
+public class ContactsActivityViewModel extends BaseViewModel<DataRepository> {
+
+    private MutableLiveData<List<FamilyContactsBean>> dataListLiveData;//鎵�鏈夋暟鎹�
+
+
+    public ContactsActivityViewModel(@NonNull Application application) {
+        super(application);
+    }
+
+    @Override
+    protected DataRepository initModel() {
+        return DataRepository.getInstance();
+    }
+
+
+    public void getFamilyContacts(){
+        model.getFamilyContacts(new HashMap<>())
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<FamilyContactsBean>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<FamilyContactsBean> 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 MutableLiveData<List<FamilyContactsBean>> getDataListLiveData() {
+        if (dataListLiveData == null){
+            dataListLiveData = new MutableLiveData<>();
+        }
+        return dataListLiveData;
+    }
+    public void setDataListLiveData(MutableLiveData<List<FamilyContactsBean>> dataListLiveData) {
+        this.dataListLiveData = dataListLiveData;
+    }
+
+}
+
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 1ee6cfc..2c797a4 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
@@ -5,19 +5,25 @@
 import android.view.ViewGroup;
 import android.widget.PopupWindow;
 
-import androidx.databinding.DataBindingUtil;
 
-import com.android.app_base.utils.ScreenSizeUtils;
+import androidx.lifecycle.Observer;
+import androidx.viewpager.widget.ViewPager;
+
 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.GrowthExperienceAbroadConditionRvAdapter;
+import com.application.zhangshi_app_android.adapter.GrowthExperienceHolderConditionRvAdapter;
 import com.application.zhangshi_app_android.adapter.GrowthExperiencePrimaryRvAdapter;
+import com.application.zhangshi_app_android.adapter.GrowthExperienceRelationshipRvAdapter;
+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.GrowthExperienceRelationshipBean;
 import com.application.zhangshi_app_android.databinding.ActivityGrowthExperienceBinding;
 import com.application.zhangshi_app_android.ui.DLBaseActivity;
-
-import java.util.ArrayList;
+import com.google.android.material.tabs.TabLayout;
 import java.util.List;
 
 /**
@@ -26,8 +32,10 @@
  * @desc 鎴愰暱缁忓巻 GrowthExperienceActivity
  */
 public class GrowthExperienceActivity extends DLBaseActivity<ActivityGrowthExperienceBinding,GrowthExperienceActivityViewModel> {
-    private GrowthExperiencePrimaryRvAdapter adapter;
-
+    private GrowthExperiencePrimaryRvAdapter primaryRvAdapter;
+    private GrowthExperienceRelationshipRvAdapter relationshipRvAdapter;
+    private GrowthExperienceHolderConditionRvAdapter holderConditionRvAdapter;
+    private GrowthExperienceAbroadConditionRvAdapter abroadConditionRvAdapter;
 
     @Override
     public int getLayoutId() {
@@ -41,49 +49,113 @@
 
     @Override
     public void initParam() {
-        GrowthExperienceBean bean = new GrowthExperienceBean("name", "date", "content");
-        List<GrowthExperienceBean> dataList=new ArrayList<>();
-        dataList.add(new GrowthExperienceBean("2010-2016","**灏忓","寮犱笁"));
-        dataList.add(new GrowthExperienceBean("2017-2020","**涓","鏉庡洓"));
-        adapter=new GrowthExperiencePrimaryRvAdapter(this,dataList);
+
     }
 
+    // 璁剧疆閫変腑鏁堟灉
 
 
     @Override
     public void initView() {
-        adapter = new GrowthExperiencePrimaryRvAdapter(this);
+        primaryRvAdapter = new GrowthExperiencePrimaryRvAdapter(this);
+        relationshipRvAdapter = new GrowthExperienceRelationshipRvAdapter(this);
+        holderConditionRvAdapter = new GrowthExperienceHolderConditionRvAdapter(this );
+        abroadConditionRvAdapter = new GrowthExperienceAbroadConditionRvAdapter(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));
+        itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_16));
+
         binding.rvPrimary.addItemDecoration(itemDecoration);
-        binding.rvPrimary.setAdapter(adapter);
+        binding.rvPrimary.setAdapter(primaryRvAdapter);
         binding.rvRelationship.addItemDecoration(itemDecoration);
-        binding.rvRelationship.setAdapter(adapter);
+        binding.rvRelationship.setAdapter(relationshipRvAdapter);
         binding.rvCertificates.addItemDecoration(itemDecoration);
-        binding.rvCertificates.setAdapter(adapter);
+        binding.rvCertificates.setAdapter(holderConditionRvAdapter);
         binding.rvAbroad.addItemDecoration(itemDecoration);
-        binding.rvAbroad.setAdapter(adapter);
+        binding.rvAbroad.setAdapter(abroadConditionRvAdapter);
+
+        //杩欓噷鐨則ab鏁伴噺灏辨槸鍚庡彴杩斿洖鐨勬暟鎹噺锛宼ab鐨勬爣棰樹篃鏄悗鍙拌繑鍥炵殑锛屼絾鏄瘂"id":1,"userId":110,"type":1,"content":"濠村効鏃舵湡鎴戝緢蹇箰"}鍚庡彴鐨勮繑鍥炴暟鎹病鏈夎繖涓椂闂存锛屼綘灏卞緱闂竴涓嬶紝鐪嬩笉鎳傚悧锛燂紵
+        binding.tabLayout.addTab(binding.tabLayout.newTab().setText("0-3宀侊紙濠村効鏈燂級"));
+        binding.tabLayout.addTab(binding.tabLayout.newTab().setText("3-6宀侊紙骞煎効鏈燂級"));
+        binding.tabLayout.addTab(binding.tabLayout.newTab().setText("6-9宀侊紙闈掑勾鏈燂級 "));
+
+        //灏变笉鐭ラ亾鑴戝瓙鍦ㄦ兂浠�涔�
+        binding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+            @Override
+            public void onTabSelected(TabLayout.Tab tab) {
+                // 褰撶敤鎴烽�変腑涓�涓� Tab 鏃跺洖璋�
+                // 杩欓噷鍙互鏍规嵁 Tab 鐨勪綅缃潵鍒囨崲鐩稿簲鐨勯〉闈�
+                switch (tab.getPosition()) {
+                    case 0:
+                        // 鍒囨崲鍒� 0-3 宀侀〉闈�
+                        break;
+                    case 1:
+                        // 鍒囨崲鍒� 3-6 宀侀〉闈�
+                        break;
+                    case 2:
+                        // 鍒囨崲鍒� 6-9 宀侀〉闈�
+                        break;
+                    default:
+                        break;
+                }
+            }
+            @Override
+            public void onTabUnselected(TabLayout.Tab tab) {
+                // 褰撶敤鎴峰彇娑堥�変腑涓�涓� Tab 鏃跺洖璋�
+            }
+
+            @Override
+            public void onTabReselected(TabLayout.Tab tab) {
+                // 褰撶敤鎴峰啀娆¢�変腑涓�涓凡缁忛�変腑鐨� Tab 鏃跺洖璋�
+            }
+        });
+        // 鍒涘缓 ViewPager 骞惰缃� Adapter
+        ViewPager viewPager = binding.viewPager;
+        // 灏� TabLayout 涓� ViewPager 鍏宠仈璧锋潵
+        binding.tabLayout.setupWithViewPager(viewPager);
 
     }
 
     @Override
     public void initData() {
-        viewModel.getGrowthExperience();
+     viewModel.getInfo();
+      viewModel.getGrowthExperience();
+       viewModel.getRelation();
+       viewModel.getHolder();
+       viewModel.getAbroad();
+        viewModel.getGrowthExperienceAutobiography();
     }
 
 
     @Override
     public void initLiveDataObserve() {
-        ActivityGrowthExperienceBinding binding1= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
-        ActivityGrowthExperienceBinding binding2= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
-        ActivityGrowthExperienceBinding binding3= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
-        ActivityGrowthExperienceBinding binding4= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience);
-
-        viewModel.getDataListLiveData().observe(this, GrowthExperienceBeans -> {
-            adapter.setData(GrowthExperienceBeans);
+        viewModel.getPrimaryLiveData().observe(this, new Observer<List<GrowthExperienceBean>>() {
+            @Override
+            public void onChanged(List<GrowthExperienceBean> growthExperienceBeans) {
+                primaryRvAdapter.setData(growthExperienceBeans);
+            }
         });
+        viewModel.getRelationLiveData().observe(this, new Observer<List<GrowthExperienceRelationshipBean>>() {
+            @Override
+            public void onChanged(List<GrowthExperienceRelationshipBean> growthExperienceRelationshipBeans) {
+                relationshipRvAdapter.setData(growthExperienceRelationshipBeans);
+            }
+        });
+        viewModel.getHolderLiveData().observe(this, new Observer<List<GrowthExperienceHolderConditionBean>>() {
+            @Override
+            public void onChanged(List<GrowthExperienceHolderConditionBean> growthExperienceHolderConditionBeans) {
+                holderConditionRvAdapter.setData(growthExperienceHolderConditionBeans);
+            }
+        });
+        viewModel.getAbroadLiveData().observe(this, new Observer<List<GrowthExperienceAbroadConditionBean>>() {
+            @Override
+            public void onChanged(List<GrowthExperienceAbroadConditionBean> growthExperienceAbroadConditionBeans) {
+                abroadConditionRvAdapter.setData(growthExperienceAbroadConditionBeans);
+            }
+        });
+
     }
 
     private PopupWindow initPopUpWindow(View view){
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java
index 0fcbc9f..5aa4277 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java
@@ -3,30 +3,19 @@
 import android.app.Application;
 
 import androidx.annotation.NonNull;
-import androidx.databinding.DataBindingUtil;
-import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.MutableLiveData;
-import androidx.lifecycle.ViewModelProvider;
 
-import com.android.app_base.base.StateViewEnum;
 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.ToastUtils;
 import com.android.app_base.base.viewmodel.BaseViewModel;
-import com.application.zhangshi_app_android.R;
-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.GrowthExperienceAbroadConditionBean;
+import com.application.zhangshi_app_android.bean.GrowthExperienceAutobiographyBean;
 import com.application.zhangshi_app_android.bean.GrowthExperienceBean;
-import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean;
-import com.application.zhangshi_app_android.bean.HomeDevicesBean;
+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.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;
 
@@ -38,8 +27,12 @@
  * @desc 鎴愰暱缁忓巻 viewModel
  */
 public class GrowthExperienceActivityViewModel extends BaseViewModel<DataRepository>  {
-    private MutableLiveData<List<GrowthExperienceBean>> dataListLiveData;//鏁版嵁
-
+    private MutableLiveData<List<GrowthExperienceBean>> primaryLiveData;//鏁版嵁
+    private MutableLiveData<GrowthExperienceInformationBean> infoLiveData;
+    private MutableLiveData<List<GrowthExperienceAutobiographyBean>> autobiographyLiveData;
+    private MutableLiveData<List<GrowthExperienceRelationshipBean>>  relationLiveData;
+    private MutableLiveData<List<GrowthExperienceHolderConditionBean>>  holderLiveData;
+    private MutableLiveData<List<GrowthExperienceAbroadConditionBean>>  abroadLiveData;
     public GrowthExperienceActivityViewModel(@NonNull Application application) {
         super(application);
     }
@@ -47,24 +40,164 @@
     protected DataRepository initModel() {
         return DataRepository.getInstance();
     }
-     public void getGrowthExperience(){
-    model.getGrowthExperience(new HashMap<>())
-           .compose(RxUtils.schedulersTransformer())
-     .subscribe(new Observer<ResultData<GrowthExperienceResponseBean>>() {
-                @Override
+
+
+    /**
+     * 鑾峰彇鎴愰暱缁忓巻
+     */
+    public void getGrowthExperience(){
+         model.getGrowthExperience()
+                 .compose(RxUtils.schedulersTransformer())
+                 .subscribe(new Observer<ResultData<List<GrowthExperienceBean>>>() {
+                     @Override
+                     public void onSubscribe(Disposable d) {
+                         addSubscribe(d);
+                     }
+
+                     @Override
+                     public void onNext(ResultData<List<GrowthExperienceBean>> data) {
+                         if (data.getCode() == CODE_SUCCESS){
+                             primaryLiveData.postValue(data.getData());
+                         }else {
+                             messageLiveData.postValue(data.getMsg());
+                         }
+                     }
+
+
+                     @Override
+                     public void onError(Throwable e) {
+                         messageLiveData.postValue(e.getMessage());
+                     }
+
+                     @Override
+                     public void onComplete() {
+
+                     }
+                 });
+
+    }
+
+    /**
+     * 鑾峰彇涓汉淇℃伅
+     */
+    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<GrowthExperienceResponseBean> data) {
+                    public void onNext(ResultData<GrowthExperienceInformationBean> data) {
                         if (data.getCode() == CODE_SUCCESS){
-                            if (data.getData().getData().isEmpty()){
-                                changeStateView(StateViewEnum.DATA_NULL);
-                            }else {
-                                changeStateView(StateViewEnum.HIDE);
-                                dataListLiveData.postValue(data.getData().getData());
+                            infoLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鑾峰彇鑷紶
+     */
+    public void getGrowthExperienceAutobiography(){
+        model.getGrowthExperienceAutobiography()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<GrowthExperienceAutobiographyBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+                    @Override
+                    public void onNext(ResultData<List<GrowthExperienceAutobiographyBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS) {
+                            if (autobiographyLiveData != null) {
+                                //杩欎竴鐪嬪氨鏄凡缁忚幏鍙栧埌鏁版嵁浜嗭紝娌℃硶鏄剧ず灏辨槸浣犲啓鐨勪唬鐮侀棶棰橈紝鑷繁鎵鹃棶棰樺晩
+                                //灏辩粰livedata璁剧疆鏁版嵁锛岀劧鍚庡憿锛屽畠鐨勬暟鎹敼鍙樺悗锛岃皝鏉ュ彂鐢焨i鍙樺寲锛岃瀵熻�呭憿锛燂紵锛熻皝鏄瀵熻��
+                                autobiographyLiveData.postValue(data.getData());
                             }
+                        } else {
+                            if (messageLiveData != null) {
+                                messageLiveData.postValue(data.getMsg());
+                            }
+                        }
+                    }
+
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+
+    /**
+     * 鑾峰彇鍏崇郴鎯呭喌
+     */
+    public void getRelation(){
+        model.getGrowthExperienceRelationship()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<GrowthExperienceRelationshipBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<List<GrowthExperienceRelationshipBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            relationLiveData.postValue(data.getData());
+                        }else {
+                            messageLiveData.postValue(data.getMsg());
+                        }
+                    }
+
+
+                    @Override
+                    public void onError(Throwable e) {
+                        messageLiveData.postValue(e.getMessage());
+                    }
+
+                    @Override
+                    public void onComplete() {
+
+                    }
+                });
+    }
+    /**
+     * 鑾峰彇鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐�
+     */
+    public void getHolder(){
+        model.getGrowthExperienceHolderCondition()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<GrowthExperienceHolderConditionBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
+                    }
+
+                    @Override
+                    public void onNext(ResultData<List<GrowthExperienceHolderConditionBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            holderLiveData.postValue(data.getData());
                         }else {
                             messageLiveData.postValue(data.getMsg());
                         }
@@ -84,45 +217,106 @@
     }
 
 
-    public MutableLiveData<List<GrowthExperienceBean>> getDataListLiveData() {
-        if (dataListLiveData == null){
-            dataListLiveData = new MutableLiveData<>();
-        }
-        return dataListLiveData;
-    }
-
-    public void setDataListLiveData(MutableLiveData<List<GrowthExperienceBean>> dataListLiveData) {
-        this.dataListLiveData = dataListLiveData;
-    }
-
-    public void sortDataList(int type){
-        List<GrowthExperienceBean> list = dataListLiveData.getValue();
-        if (list == null || list.isEmpty()){
-            return;
-        }
-
-        list.sort(new Comparator<GrowthExperienceBean>() {
-            @Override
-            public int compare(GrowthExperienceBean o1, GrowthExperienceBean o2) {
-                SimpleDateFormat format = new SimpleDateFormat("yyyy-yyyy", java.util.Locale.getDefault());
-                Date date1 = null;
-                Date date2 = null;
-                try {
-                    date1 = format.parse(o1.getDuringYear());
-                    date2 = format.parse(o2.getDuringYear());
-                } catch (ParseException e) {
-                    throw new RuntimeException(e);
-                }
-                if (date1 != null && date2 != null) {
-                    if (type == 0){
-                        return date2.compareTo(date1);
-                    }else {
-                        return date1.compareTo(date2);
+    /**
+     * 鑾峰彇鍑哄浗澧冩儏鍐�
+     */
+    public void getAbroad(){
+        model.getGrowthExperienceAbroadCondition()
+                .compose(RxUtils.schedulersTransformer())
+                .subscribe(new Observer<ResultData<List<GrowthExperienceAbroadConditionBean>>>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+                        addSubscribe(d);
                     }
-                }
-                return 0;
-            }
-        });
-        dataListLiveData.postValue(list);
+
+                    @Override
+                    public void onNext(ResultData<List<GrowthExperienceAbroadConditionBean>> data) {
+                        if (data.getCode() == CODE_SUCCESS){
+                            abroadLiveData.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<GrowthExperienceBean>> getPrimaryLiveData() {
+        if (primaryLiveData == null){
+            primaryLiveData = new MutableLiveData<>();
+        }
+        return primaryLiveData;
+    }
+
+    public void setPrimaryLiveData(MutableLiveData<List<GrowthExperienceBean>> primaryLiveData) {
+        this.primaryLiveData = primaryLiveData;
+    }
+
+    public MutableLiveData<List<GrowthExperienceRelationshipBean>> getRelationLiveData() {
+        if (relationLiveData == null){
+            relationLiveData = new MutableLiveData<>();
+        }
+        return relationLiveData;
+    }
+
+    public void setRelationLiveData(MutableLiveData<List<GrowthExperienceRelationshipBean>> relationLiveData) {
+        this.relationLiveData = relationLiveData;
+    }
+
+    public MutableLiveData<GrowthExperienceInformationBean> getInfoLiveData() {
+        if (infoLiveData == null){
+            infoLiveData = new MutableLiveData<>();
+        }
+        return infoLiveData;
+    }
+
+    public void setInfoLiveData(MutableLiveData<GrowthExperienceInformationBean> infoLiveData) {
+        this.infoLiveData = infoLiveData;
+    }
+    public void setHolderLiveData(MutableLiveData<List<GrowthExperienceHolderConditionBean>> holderLiveData) {
+        this.holderLiveData = holderLiveData;
+    }
+
+    public MutableLiveData<List<GrowthExperienceHolderConditionBean>> getHolderLiveData() {
+        if (holderLiveData == null){
+            holderLiveData = new MutableLiveData<>();
+        }
+        return holderLiveData;
+    }
+
+    public void setAbroadLiveData(MutableLiveData<List<GrowthExperienceAbroadConditionBean>> abroadLiveData) {
+        this.abroadLiveData = abroadLiveData;
+    }
+
+    public MutableLiveData<List<GrowthExperienceAbroadConditionBean>> getAbroadLiveData() {
+        if (abroadLiveData == null){
+            abroadLiveData = new MutableLiveData<>();
+        }
+        return abroadLiveData;
+    }
+
+
+
+    public MutableLiveData<List<GrowthExperienceAutobiographyBean>> getAutobiographyLiveData() {
+        if (autobiographyLiveData == null){
+            autobiographyLiveData = new MutableLiveData<>();
+        }
+        return autobiographyLiveData;
+    }
+
+    public void setAutobiographyLiveData(MutableLiveData<List<GrowthExperienceAutobiographyBean>> autobiographyLiveData) {
+        this.autobiographyLiveData = autobiographyLiveData;
     }
 }
diff --git a/app/src/main/res/drawable/mail_list_pic.png b/app/src/main/res/drawable/mail_list_pic.png
new file mode 100644
index 0000000..e2b116f
--- /dev/null
+++ b/app/src/main/res/drawable/mail_list_pic.png
Binary files differ
diff --git a/app/src/main/res/drawable/shape_fffad1e0_stroke.xml b/app/src/main/res/drawable/shape_fffad1e0_stroke.xml
new file mode 100644
index 0000000..0e735e8
--- /dev/null
+++ b/app/src/main/res/drawable/shape_fffad1e0_stroke.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:topLeftRadius="4dp" android:topRightRadius="4dp" android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp" />
+    <stroke android:width="1dp" android:color="#fffad1e0" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contacts.xml b/app/src/main/res/layout/activity_contacts.xml
new file mode 100644
index 0000000..bd7048d
--- /dev/null
+++ b/app/src/main/res/layout/activity_contacts.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="viewModel"
+            type="com.application.zhangshi_app_android.ui.function.ContactsActivityViewModel" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <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"
+            >
+            <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>
+
+            <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="@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"
+                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:text=""
+                    android:singleLine="true"
+                    android:hint="鍦ㄢ�滈�氳褰曞唴鎼滅储鈥�"
+                    />
+                <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>
+
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recyclerView"
+            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="10"
+            tools:layout_editor_absoluteX="-81dp"
+            tools:listitem="@layout/item_contacts" />
+
+    </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 9a7157f..19a7b67 100644
--- a/app/src/main/res/layout/activity_growth_experience.xml
+++ b/app/src/main/res/layout/activity_growth_experience.xml
@@ -73,6 +73,7 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
+                            android:text="@{viewModel.infoLiveData.nickName}"
                             tools:text="寮犱笁" />
 
                         <View
@@ -81,6 +82,7 @@
                             android:layout_marginTop="5dp"
                             android:background="#6B000000" />
                     </LinearLayout>
+
 
                     <LinearLayout
                         android:id="@+id/layout_2"
@@ -107,6 +109,7 @@
                             android:textColor="#DE000000"
                             android:textSize="@dimen/sp_16"
                             tools:text="寮犲洓"
+                            android:text="@{viewModel.infoLiveData.oldName}"
                             />
 
                         <View
@@ -152,6 +155,7 @@
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
                             tools:text="鐢�"
+                            android:text="@{String.valueOf(viewModel.infoLiveData.sex)}"
                             />
 
                         <View
@@ -184,6 +188,7 @@
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
                             tools:text="姹夋棌"
+                            android:text="@{viewModel.infoLiveData.nationality}"
                             />
 
                         <View
@@ -216,7 +221,9 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
-                            tools:text="涓浗" />
+                            tools:text="涓浗"
+                            android:text="@{viewModel.infoLiveData.nation}"
+                            />
 
                         <View
                             android:layout_width="match_parent"
@@ -247,7 +254,8 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
-                            tools:text="鏈" />
+                            tools:text="鏈"
+                            android:text="@{String.valueOf(viewModel.infoLiveData.maritalStatus)}"/>
 
                         <View
                             android:layout_width="match_parent"
@@ -278,7 +286,8 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
-                            tools:text="1234567890" />
+                            tools:text="1234567890"
+                            android:text="@{viewModel.infoLiveData.phoneNumber}"/>
 
                         <View
                             android:layout_width="match_parent"
@@ -311,13 +320,15 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
-                            tools:text="缇や紬" />
+                            tools:text="缇や紬"
+                            android:text="@{viewModel.infoLiveData.politicalOutlook}"/>
 
                         <View
                             android:layout_width="match_parent"
                             android:layout_height="1dp"
                             android:layout_marginTop="5dp"
-                            android:background="#6B000000" />
+                            android:background="#6B000000"
+                            />
                     </LinearLayout>
 
                     <LinearLayout
@@ -343,7 +354,8 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
-                            tools:text="440000199801010001" />
+                            tools:text="440000199801010001"
+                            android:text="@{viewModel.infoLiveData.idNum}"/>
 
                         <View
                             android:layout_width="match_parent"
@@ -375,13 +387,15 @@
                             android:textColor="#DE000000"
                             android:textColorHint="#6b000000"
                             android:textSize="@dimen/sp_16"
-                            tools:text="骞夸笢鐪佸箍宸炲競鐣鍖哄皬璋峰洿琛楅亾" />
+                            tools:text="骞夸笢鐪佸箍宸炲競鐣鍖哄皬璋峰洿琛楅亾"
+                            android:text="@{viewModel.infoLiveData.locationAddress}" />
 
                         <View
                             android:layout_width="match_parent"
                             android:layout_height="1dp"
                             android:layout_marginTop="5dp"
                             android:background="#6B000000" />
+
                     </LinearLayout>
 
                     <LinearLayout
@@ -432,7 +446,7 @@
                         android:id="@+id/layout_9"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:orientation="horizontal"
+                        android:orientation="vertical"
                         app:layout_constraintTop_toBottomOf="@id/layout_8"
                         android:layout_marginTop="30dp"
                         >
@@ -461,7 +475,7 @@
                         <androidx.recyclerview.widget.RecyclerView
                             android:id="@+id/rv_relationship"
                             android:layout_width="match_parent"
-                            android:layout_height="match_parent"
+                            android:layout_height="wrap_content"
                             android:background="@color/color_normal_background"
                             android:layout_marginTop="16dp"
                             tools:itemCount="3"
@@ -629,6 +643,33 @@
                         android:textStyle="bold"
                         app:layout_constraintLeft_toLeftOf="parent"
                         app:layout_constraintTop_toBottomOf="@+id/layout_12" />
+                    <com.google.android.material.tabs.TabLayout
+                        android:id="@+id/tab_layout"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        app:tabPaddingTop="@dimen/dp_22"
+                        app:layout_constraintTop_toBottomOf="@+id/tv_autobiography"
+                        app:tabMode="scrollable"
+                        app:tabGravity="fill" />
+                    <androidx.viewpager.widget.ViewPager
+                        android:id="@+id/view_pager"
+                        android:layout_width="match_parent"
+                        android:layout_height="@dimen/dp_0"
+                        android:layout_weight="1"
+                        app:layout_constraintTop_toBottomOf="@id/tab_layout"/>
+                    <TextView
+                        android:id="@+id/tv_fill"
+                        android:orientation="vertical"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:background="@drawable/shape_fffad1e0_stroke"
+                        android:layout_marginBottom="20dp"
+                        android:layout_marginTop="@dimen/dp_2"
+                        android:paddingStart="10dp"
+                        android:paddingEnd="5dp"
+                        android:paddingVertical="10dp"
+                        app:layout_constraintTop_toBottomOf="@id/view_pager"
+                      />
 
 
 
diff --git a/app/src/main/res/layout/item_contacts.xml b/app/src/main/res/layout/item_contacts.xml
new file mode 100644
index 0000000..ed796e3
--- /dev/null
+++ b/app/src/main/res/layout/item_contacts.xml
@@ -0,0 +1,118 @@
+<?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.FamilyContactsBean" />
+    </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="wrap_content"
+            android:layout_margin="@dimen/dp_2"
+            app:cardCornerRadius="@dimen/dp_10"
+            app:cardBackgroundColor="@color/color_card_pink"
+            >
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                >
+                <RelativeLayout
+                    android:id="@+id/layout_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/dp_40"
+                    android:gravity="center_vertical|center_horizontal"
+                    >
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:layout_gravity="center"
+                        android:textSize="@dimen/sp_16"
+                        android:textColor="@color/black"
+                        android:gravity="center"
+                        android:textStyle="bold"
+                        tools:text="寮犱笁鐨勯�氳褰�"
+                        />
+
+
+                </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="@dimen/dp_6"
+                        >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="寮犱簩"
+                            android:textColor="@color/black"
+                            android:textSize="@dimen/sp_14"
+                            android:textStyle="bold"
+                            />
+
+                    </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="0dp"
+                            android:layout_height="wrap_content"
+                            android:text="鐖朵翰"
+                            android:textColor="#80000000"
+                            android:textSize="@dimen/sp_12"
+                            android:layout_weight="1"
+
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:text="寮犳皬鍏徃"
+                            android:textColor="#80000000"
+                            android:textSize="@dimen/sp_12"
+                            android:layout_weight="1"
+
+                            />
+                        <TextView
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:text="12345678901"
+                            android:textColor="#80000000"
+                            android:textSize="@dimen/sp_12"
+                            android:layout_weight="1"
+
+                            />
+                    </LinearLayout>
+
+
+
+
+
+
+                </LinearLayout>
+            </LinearLayout>
+
+        </androidx.cardview.widget.CardView>
+
+    </LinearLayout>
+</layout>
\ No newline at end of file
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 1287bd9..43f6dd5 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
@@ -6,7 +6,7 @@
     <data>
         <variable
             name="bean"
-            type="com.application.zhangshi_app_android.bean.GrowthExperienceBean" />
+            type="com.application.zhangshi_app_android.bean.GrowthExperienceAbroadConditionBean" />
     </data>
 
     <LinearLayout
@@ -40,7 +40,7 @@
                         android:layout_marginStart="24dp"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.abroadZone}"
+                        android:text="@{bean.destination}"
                         android:layout_weight="1"
                         tools:text="棣欐腐"
                         android:textStyle="bold"
@@ -50,7 +50,7 @@
                         android:layout_height="wrap_content"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.duringTime}"
+                        android:text="@{bean.startDate}"
                         android:textStyle="bold"
                         android:layout_marginEnd="24dp"
                         android:layout_alignParentEnd="true"
@@ -83,7 +83,7 @@
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             tools:text="鎺翰"
-                            android:text="@{bean.reason}"
+                            android:text="@{bean.cause}"
                             android:textColor="@color/black"
                             android:textSize="@dimen/sp_12"
                             android:textStyle="bold"
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 8689a4f..1de11ef 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
@@ -6,7 +6,7 @@
     <data>
         <variable
             name="bean"
-            type="com.application.zhangshi_app_android.bean.GrowthExperienceBean" />
+            type="com.application.zhangshi_app_android.bean.GrowthExperienceHolderConditionBean" />
     </data>
 
     <LinearLayout
@@ -39,7 +39,7 @@
                         android:layout_marginStart="24dp"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.passCheck}"
+                        android:text="@{bean.cerName}"
                         android:layout_weight="1"
                         tools:text="鎶ょ収"
                         android:textStyle="bold"
@@ -49,7 +49,7 @@
                         android:layout_height="wrap_content"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.duringTime}"
+                        android:text="@{bean.validityDate}"
                         android:textStyle="bold"
                         android:layout_marginEnd="24dp"
                         android:layout_alignParentEnd="true"
@@ -81,10 +81,10 @@
                         <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:text="@{bean.ownStatus}"
                             />
                     </LinearLayout>
                     <LinearLayout
@@ -105,7 +105,7 @@
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:textColor="@color/black"
-                            android:text="@{bean.residenceNumber}"
+                            android:text="@{bean.idNo}"
                             android:textSize="@dimen/sp_12"
                             android:textStyle="bold"
                             tools:text="123456789012345"
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 151d2ed..f344f6f 100644
--- a/app/src/main/res/layout/item_growth_experience_primary.xml
+++ b/app/src/main/res/layout/item_growth_experience_primary.xml
@@ -39,7 +39,7 @@
                         android:layout_marginStart="24dp"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.duringYear}"
+                        android:text="@{bean.startDate}"
                         android:layout_weight="1"
                         tools:text="2010-2016"
                         android:textStyle="bold"
@@ -49,7 +49,7 @@
                         android:layout_height="wrap_content"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.School}"
+                        android:text="@{bean.content}"
                         android:textStyle="bold"
                         android:layout_marginEnd="24dp"
                         android:layout_alignParentEnd="true"
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 1cfdf1b..e6720c5 100644
--- a/app/src/main/res/layout/item_growth_experience_relationship.xml
+++ b/app/src/main/res/layout/item_growth_experience_relationship.xml
@@ -6,7 +6,7 @@
     <data>
         <variable
             name="bean"
-            type="com.application.zhangshi_app_android.bean.GrowthExperienceBean" />
+            type="com.application.zhangshi_app_android.bean.GrowthExperienceRelationshipBean" />
     </data>
 
     <LinearLayout
@@ -39,7 +39,7 @@
                         android:layout_marginStart="24dp"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.relationship}"
+                        android:text="@{bean.relation}"
                         android:layout_weight="1"
                         tools:text="澶"
                         android:textStyle="bold"
@@ -49,7 +49,7 @@
                         android:layout_height="wrap_content"
                         android:textSize="@dimen/sp_16"
                         android:textColor="@color/black"
-                        android:text="@{bean.associate}"
+                        android:text="@{bean.nickName}"
                         android:textStyle="bold"
                         android:layout_marginEnd="24dp"
                         android:layout_alignParentEnd="true"
@@ -81,7 +81,7 @@
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.School}"
+                            android:text="@{bean.unit}"
                             android:textColor="@color/black"
                             android:textSize="@dimen/sp_12"
                             android:textStyle="bold"
@@ -104,7 +104,7 @@
                         <TextView
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="@{bean.identity}"
+                            android:text="@{bean.position}"
                             android:textColor="@color/black"
                             android:textSize="@dimen/sp_12"
                             android:textStyle="bold"
@@ -128,7 +128,7 @@
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:textColor="@color/black"
-                            android:text="@{bean.politicalStatus}"
+                            android:text="@{bean.politicalOutlook}"
                             android:textSize="@dimen/sp_12"
                             android:textStyle="bold"
                             />
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 41d3aed..a0147b3 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -23,6 +23,7 @@
     <color name="color_FF666666_text_default">#FF666666</color>
     <color name="color_card_pink">#FFFFE2EF</color>
     <color name="color_card_blue">#FFE0EEFE</color>
+    <color name="color_card_green">#FFEBFFF2</color>
     <color name="color_shadow">#88666666</color>
 
 </resources>
\ No newline at end of file
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 f60803f..78e7d00 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
@@ -190,7 +190,7 @@
     /**
      * 璁剧疆鏂扮殑鏁版嵁
      */
-    public void setData(@Nullable List<T> data) {
+    public void setData(@Nullable Object data) {
         mDataList = data;
         notifyDataSetChanged();
     }

--
Gitblit v1.9.1