Browse Source

我的页面

zhanghongrui 5 days ago
parent
commit
3885bf2f97

+ 76 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/bean/ProFileBean.java

@@ -0,0 +1,76 @@
+package com.sjkj.appthreefloor_tsgz.bean;
+
+public class ProFileBean {
+    /*  "avatar": "/file-api/group1/M00/00/1C/wKgKC2g2pPeAAFAuAADi5fnY8NI015.jpg",
+        "createTime": "2025-04-30",
+        "deptName": "铁东区",
+        "nickName": "若依",
+        "phonenumber": "15888888888",
+        "posts": "董事长",
+        "roles": "超级管理员"*/
+  private String avatar;
+  private String createTime;
+  private String deptName;
+  private String nickName;
+  private String phonenumber;
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getPhonenumber() {
+        return phonenumber;
+    }
+
+    public void setPhonenumber(String phonenumber) {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getPosts() {
+        return posts;
+    }
+
+    public void setPosts(String posts) {
+        this.posts = posts;
+    }
+
+    public String getRoles() {
+        return roles;
+    }
+
+    public void setRoles(String roles) {
+        this.roles = roles;
+    }
+
+    private String posts;
+  private String roles;
+}
+

+ 48 - 7
app/src/main/java/com/sjkj/appthreefloor_tsgz/fragment/MineFragment.java

@@ -1,32 +1,46 @@
 package com.sjkj.appthreefloor_tsgz.fragment;
 
-import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.TextView;
 
 import androidx.lifecycle.ViewModelProvider;
 
-import com.sjkj.base_lib.app.AppManager;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.sjkj.appthreefloor_tsgz.BuildConfig;
+import com.sjkj.appthreefloor_tsgz.R;
+import com.sjkj.appthreefloor_tsgz.app.App;
+import com.sjkj.appthreefloor_tsgz.bean.ProFileBean;
+import com.sjkj.appthreefloor_tsgz.databinding.FragmentMineBinding;
+import com.sjkj.appthreefloor_tsgz.fragment.viewModel.MineViewModel;
+import com.sjkj.appthreefloor_tsgz.net.GetProfileMessageRequest;
+import com.sjkj.base_lib.entity.Params;
+import com.sjkj.base_lib.net.domain.interactor.ProcessErrorSubscriber;
 import com.sjkj.base_lib.utils.AppTools;
 import com.sjkj.base_lib.utils.ToastUtils;
 import com.sjkj.base_lib.view.BaseFragment;
-import com.sjkj.appthreefloor_tsgz.BuildConfig;
-import com.sjkj.appthreefloor_tsgz.R;
-import com.sjkj.appthreefloor_tsgz.utils.AppSystemUtils;
 
 public class MineFragment extends BaseFragment {
+    private FragmentMineBinding binding;
+    private MineViewModel viewModel;
+    private GetProfileMessageRequest getProfileMessageRequest = new GetProfileMessageRequest(App.getInstance());
 
     @Override
     protected int initLayout() {
-        return 0;
+        return R.layout.fragment_mine;
     }
 
     @Override
     public View initBinding(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
-        return null;
+        binding = (FragmentMineBinding) getViewDataBing(inflater, container);
+        viewModel = new ViewModelProvider(getActivity(), new ViewModelProvider.NewInstanceFactory()).get(MineViewModel.class);
+        binding.setViewModel(viewModel);
+        binding.setLifecycleOwner(this);
+        return binding.getRoot();
     }
 
     @Override
@@ -41,6 +55,33 @@ public class MineFragment extends BaseFragment {
 
     @Override
     public void loadData() {
+        viewModel.versionName.set("v" + BuildConfig.VERSION_NAME);
+        getProfileMessageRequest.execute(new ProcessErrorSubscriber<ProFileBean>() {
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+                if (!TextUtils.isEmpty(e.getMessage())){
+                    ToastUtils.show(e.getMessage());
+                }
+            }
 
+            @Override
+            public void onNext(ProFileBean bean) {
+                super.onNext(bean);
+                if (bean!=null){
+                    viewModel.deptName.set(bean.getDeptName());
+                    viewModel.nickname.set(bean.getNickName());
+                    viewModel.phone.set(bean.getPhonenumber());
+                    viewModel.time.set(bean.getCreateTime());
+                    viewModel.role.set(bean.getRoles());
+                    if (!TextUtils.isEmpty(bean.getAvatar())){
+                        Glide.with(getActivity())
+                                .load(AppTools.getImageBaseUrl()+bean.getAvatar())
+                                .apply(RequestOptions.circleCropTransform())
+                                .into(binding.ivHead);
+                    }
+                }
+            }
+        });
     }
 }

+ 15 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/fragment/viewModel/MineViewModel.java

@@ -0,0 +1,15 @@
+package com.sjkj.appthreefloor_tsgz.fragment.viewModel;
+
+import androidx.databinding.ObservableField;
+
+import com.sjkj.base_lib.vm.BaseViewModel;
+
+public class MineViewModel extends BaseViewModel {
+    public ObservableField<String> nickname=new ObservableField<>("");
+    public ObservableField<String> phone=new ObservableField<>("");
+    public ObservableField<String> role=new ObservableField<>("");
+    public ObservableField<String> username=new ObservableField<>("");
+    public ObservableField<String> deptName=new ObservableField<>("");
+    public ObservableField<String> versionName=new ObservableField<>("");
+    public ObservableField<String> time=new ObservableField<>("");
+}

+ 54 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/net/GetProfileMessageRequest.java

@@ -0,0 +1,54 @@
+package com.sjkj.appthreefloor_tsgz.net;
+
+import android.content.Context;
+
+import com.sjkj.appthreefloor_tsgz.bean.EventMessageDetailsBean;
+import com.sjkj.appthreefloor_tsgz.bean.ProFileBean;
+import com.sjkj.base_lib.entity.Params;
+import com.sjkj.base_lib.entity.ResponseBean;
+import com.sjkj.base_lib.net.RetrofitFactory;
+import com.sjkj.base_lib.net.data.exception.BusinessException;
+import com.sjkj.base_lib.net.domain.interactor.UseCase;
+import com.sjkj.base_lib.utils.AppTools;
+
+import java.util.List;
+
+import rx.Observable;
+import rx.functions.Func1;
+
+/**
+ * 获取个人信息
+ */
+public class GetProfileMessageRequest extends UseCase {
+    private Context context;
+    private RetrofitService service;
+
+    private Params params;
+
+    public Params getParams() {
+        return params;
+    }
+
+    public void setParams(Params params) {
+        this.params = params;
+    }
+
+    public GetProfileMessageRequest(Context context) {
+        this.context = context;
+        service = RetrofitFactory.getRetrofit(AppTools.getBaseUrl()).create(RetrofitService.class);
+    }
+
+    @Override
+    protected Observable buildUseCaseObservable() {
+        return service.GetProfileMessage().flatMap(new Func1<ResponseBean<ProFileBean>, Observable<ProFileBean>>() {
+            @Override
+            public Observable<ProFileBean> call(ResponseBean<ProFileBean> responseBean) {
+                if (!ResponseBean.CODE_SUCCESS.
+                        equals(responseBean.getCode())) {
+                    return Observable.error(new BusinessException(responseBean.getMsg()));
+                }
+                return Observable.just(responseBean.getData());
+            }
+        });
+    }
+}

+ 5 - 0
app/src/main/java/com/sjkj/appthreefloor_tsgz/net/RetrofitService.java

@@ -11,6 +11,7 @@ import com.sjkj.appthreefloor_tsgz.bean.EventMessageDetailsBean;
 import com.sjkj.appthreefloor_tsgz.bean.FileBean;
 import com.sjkj.appthreefloor_tsgz.bean.LogInRsaBean;
 import com.sjkj.appthreefloor_tsgz.bean.NoticeListBean;
+import com.sjkj.appthreefloor_tsgz.bean.ProFileBean;
 import com.sjkj.appthreefloor_tsgz.bean.ResourceVisualizationBean;
 import com.sjkj.appthreefloor_tsgz.bean.ResourcesListBean;
 import com.sjkj.appthreefloor_tsgz.bean.ResureDetailsBean;
@@ -110,4 +111,8 @@ public interface RetrofitService {
     //事件反馈
     @POST("event/eventFeedback")
     Observable<ResponseBean<Object>> addFeedBack(@Body Params params);
+
+    //获取个人信息
+    @GET("app/profile")
+    Observable<ResponseBean<ProFileBean>> GetProfileMessage();
 }

BIN
app/src/main/res/drawable-xxhdpi/icon_bumen.png


BIN
app/src/main/res/drawable-xxhdpi/icon_head.png


BIN
app/src/main/res/drawable-xxhdpi/icon_juese.png


BIN
app/src/main/res/drawable-xxhdpi/icon_my.png


BIN
app/src/main/res/drawable-xxhdpi/icon_sex01.png


BIN
app/src/main/res/drawable-xxhdpi/icon_sex02.png


BIN
app/src/main/res/drawable-xxhdpi/icon_time.png


BIN
app/src/main/res/drawable-xxhdpi/icon_version.png


+ 9 - 0
app/src/main/res/drawable/rounded_30ffffff.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFFFFF"/> <!-- 背景颜色 -->
+    <corners
+        android:topLeftRadius="30dp"
+        android:topRightRadius="30dp"
+        android:bottomLeftRadius="30dp"
+        android:bottomRightRadius="30dp"/>
+</shape>

+ 303 - 0
app/src/main/res/layout/fragment_mine.xml

@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <data>
+
+        <variable
+            name="viewModel"
+            type="com.sjkj.appthreefloor_tsgz.fragment.viewModel.MineViewModel" />
+    </data>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/icon_my">
+
+        <ScrollView
+            android:id="@+id/scrollView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:fillViewport="true"
+            android:overScrollMode="never">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:id="@+id/ll_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="45dp"
+                    android:orientation="horizontal">
+
+
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center_horizontal"
+                        android:gravity="center"
+                        android:text="我的"
+                        android:textColor="#FFF"
+                        android:textSize="17dp"
+                        android:visibility="visible" />
+                </LinearLayout>
+
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:orientation="vertical">
+
+                        <RelativeLayout
+                            android:layout_marginTop="20dp"
+                            android:layout_width="match_parent"
+                            android:layout_height="140dp">
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:layout_height="match_parent"
+                                android:layout_marginTop="40dp"
+                                android:layout_toLeftOf="@+id/fl_head"
+                                android:orientation="vertical">
+
+
+                                <TextView
+
+                                    android:layout_width="match_parent"
+                                    android:layout_height="0dp"
+                                    android:layout_marginLeft="25dp"
+                                    android:layout_weight="1"
+                                    android:gravity="center_vertical"
+                                    android:text="@{viewModel.nickname}"
+                                    android:textColor="@color/white"
+                                    android:textSize="18dp" />
+
+                                <TextView
+                                    android:layout_width="match_parent"
+                                    android:layout_height="0dp"
+                                    android:layout_marginLeft="25dp"
+                                    android:layout_weight="1"
+                                    android:gravity="top"
+                                    android:text='@{"手机号码:"+viewModel.phone}'
+                                    android:textColor="@color/white"
+                                    android:textSize="14dp">
+
+                                </TextView>
+
+                            </LinearLayout>
+
+                            <FrameLayout
+                                android:id="@+id/fl_head"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+
+                                android:layout_alignParentRight="true"
+                                android:layout_alignParentBottom="true"
+                                android:layout_marginRight="30dp"
+                                android:layout_marginBottom="30dp">
+
+
+                                <ImageView
+                                    android:id="@+id/iv_head"
+                                    android:layout_width="65dp"
+                                    android:layout_height="65dp"
+                                    android:background="@drawable/icon_head" />
+
+                                <ImageView
+                                    android:id="@+id/iv_sex"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="bottom|right"
+                                    android:background="@drawable/icon_sex01" />
+                            </FrameLayout>
+                        </RelativeLayout>
+
+                        <RelativeLayout
+                            android:id="@+id/my_msg"
+                            android:layout_width="match_parent"
+                            android:layout_height="54dp"
+                            android:layout_marginLeft="15dp"
+                            android:layout_marginTop="5dp"
+                            android:layout_marginRight="15dp"
+                            android:background="@drawable/shape_common_corners_10dp"
+                            android:visibility="visible">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_alignParentRight="true"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="25dp"
+                                android:text="@{viewModel.deptName}"
+                                android:textColor="#979797"
+                                android:textSize="14dp" />
+
+                            <ImageView
+                                android:id="@+id/iv"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="25dp"
+                                android:background="@drawable/icon_bumen" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="10dp"
+                                android:layout_toRightOf="@+id/iv"
+                                android:text="所属部门"
+                                android:textColor="#333"
+                                android:textSize="14dp" />
+                        </RelativeLayout>
+
+
+                        <RelativeLayout
+                            android:id="@+id/rl_mail_list"
+                            android:layout_width="match_parent"
+                            android:layout_height="54dp"
+                            android:layout_marginLeft="15dp"
+                            android:layout_marginTop="15dp"
+                            android:layout_marginRight="15dp"
+                            android:background="@drawable/shape_common_corners_10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_alignParentRight="true"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="25dp"
+                                android:text="@{viewModel.role}"
+                                android:textColor="#979797"
+                                android:textSize="14dp" />
+
+                            <ImageView
+                                android:id="@+id/iv1"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="25dp"
+                                android:background="@drawable/icon_juese" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="10dp"
+                                android:layout_toRightOf="@+id/iv1"
+                                android:text="所属角色"
+                                android:textColor="#333"
+                                android:textSize="14dp" />
+                        </RelativeLayout>
+
+
+                        <RelativeLayout
+                            android:id="@+id/rl_password"
+                            android:layout_width="match_parent"
+                            android:layout_height="54dp"
+                            android:layout_marginLeft="15dp"
+                            android:layout_marginTop="15dp"
+                            android:layout_marginRight="15dp"
+                            android:background="@drawable/shape_common_corners_10dp"
+                            android:visibility="visible">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_alignParentRight="true"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="25dp"
+                                android:text="@{viewModel.time}"
+                                android:textColor="#979797"
+                                android:textSize="14dp" />
+
+                            <ImageView
+                                android:id="@+id/iv2"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="25dp"
+                                android:background="@drawable/icon_time" />
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="10dp"
+                                android:layout_toRightOf="@+id/iv2"
+                                android:text="创建日期"
+                                android:textColor="#333"
+                                android:textSize="14dp" />
+
+                        </RelativeLayout>
+
+                        <RelativeLayout
+                            android:id="@+id/rl_version"
+                            android:layout_width="match_parent"
+                            android:layout_height="54dp"
+                            android:layout_marginLeft="15dp"
+                            android:layout_marginTop="15dp"
+                            android:layout_marginRight="15dp"
+                            android:background="@drawable/shape_common_corners_10dp">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_alignParentRight="true"
+                                android:layout_centerVertical="true"
+                                android:layout_marginRight="25dp"
+                                android:text="@{viewModel.versionName}"
+                                android:textColor="#979797"
+                                android:textSize="14dp" />
+
+                            <ImageView
+                                android:id="@+id/iv3"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="25dp"
+                                android:background="@drawable/icon_version" />
+
+                            <TextView
+                                android:id="@+id/tv_smrz"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="10dp"
+                                android:layout_toRightOf="@+id/iv3"
+                                android:text="当前版本"
+                                android:textColor="#333"
+                                android:textSize="14dp" />
+
+
+                        </RelativeLayout>
+
+
+                        <TextView
+                            android:id="@+id/tv_sign_out"
+                            android:layout_width="match_parent"
+                            android:layout_height="50dp"
+                            android:layout_marginLeft="15dp"
+                            android:layout_marginTop="80dp"
+                            android:layout_gravity="bottom"
+                            android:layout_marginRight="15dp"
+                            android:background="@drawable/rounded_30ffffff"
+                            android:gravity="center_horizontal|center_vertical"
+                            android:text="@string/exit_login"
+                            android:textColor="#409EFF" />
+
+                    </LinearLayout>
+
+                </RelativeLayout>
+            </LinearLayout>
+        </ScrollView>
+
+    </RelativeLayout>
+
+
+</layout>