平板邮件、我的

This commit is contained in:
adam 2022-05-11 16:41:29 +08:00
parent e07f9b99ea
commit e3a1e25052
35 changed files with 10320 additions and 63 deletions

View File

@ -246,4 +246,21 @@ public class PathConfig {
public static final String PATH_MODULE_PAD_OA_FRAGMENT_DOCUMENT_DETAIL = "/oamodule/fragment/documentDetail";//文档详情
public static final String PATH_MODULE_PAD_OA_FRAGMENT_DOCUMENT_EDIT = "/oamodule/fragment/documentEdit";//文档编辑
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_BOX = "/oamodule/fragment/emailInBox";//邮件收件箱
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND_BOX = "/oamodule/fragment/emailSendBox";//邮件发件箱
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_DRAFT_BOX = "/oamodule/fragment/emailDraftBox";//邮件草稿箱
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_RECYCLE_BOX = "/oamodule/fragment/emailRecycleBox";//邮件回收站
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_DETAIL = "/oamodule/fragment/emailInDetail";//邮件收件详情
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND_DETAIL = "/oamodule/fragment/emailSendDetail";//邮件发件详情
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_DRAFT_DETAIL = "/oamodule/fragment/emailDraftDetail";//邮件草稿详情
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_RECYCLE_DETAIL = "/oamodule/fragment/emailRecycleDetail";//回收站邮件详情
public static final String PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND = "/oamodule/fragment/emailSend";//邮件发信
public static final String PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_ADD = "/oamodule/fragment/userRecordAdd";//个人档案添加
public static final String PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_EDIT = "/oamodule/fragment/userRecordEdit";//个人档案添加
public static final String PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_DETAIL = "/oamodule/fragment/userRecordDetail";//个人档案详情
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gray_f5" />
<corners android:radius="3dp" />
</shape>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shp_rectangle_white" android:state_checked="true" />
<item android:drawable="@drawable/shp_rectangle_gray_no_f" android:state_checked="false" />
</selector>

View File

@ -74,8 +74,10 @@ public class EmailAdapter extends BaseRecyclerAdapter<Object, EmailHolder> {
EmailInboxListBean.RowsBean bean = (EmailInboxListBean.RowsBean) o;
if (bean.getReadTag() == 1) {
h.mTvTitle.setTextColor(Color.GRAY);
h.mTvContent.setTextColor(Color.GRAY);
} else {
h.mTvTitle.setTextColor(Color.BLACK);
h.mTvContent.setTextColor(Color.BLACK);
}
h.mTvTitle.setText(bean.getTitle());
h.mTvContent.setText(Html.fromHtml(bean.getContent()));

View File

@ -36,7 +36,11 @@ public class ScheduleTimeLineAdapter extends BaseRecyclerAdapter<ScheduleDetailB
ScheduleDetailBean b = mData.get(i);
if (i == 0) {
//第一条
h.mIvStep.setImageResource(R.drawable.ic_step_start);
if (mData.size() > 1) {
h.mIvStep.setImageResource(R.drawable.ic_step_start);
} else {
h.mIvStep.setImageResource(R.drawable.ic_step_start_one);
}
} else if (i == (mData.size() - 1)) {
//最后一条
int i1 = TimeUtils.compareDateExac(b.getScheduleStartTime(), TimeUtils.getNowHourMMss());

View File

@ -1,6 +1,7 @@
package com.tenlionsoft.oamodule.pad.activitys.home;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
@ -16,6 +17,7 @@ import com.google.gson.Gson;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.beans.UserInfoBean;
import com.tenlionsoft.baselib.core.network.update.CheckUpdateUtils;
import com.tenlionsoft.baselib.core.network.update.service.DownloadService;
@ -33,6 +35,7 @@ import com.tenlionsoft.baselib.utils.KeyBoardListener;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.net.OAApi;
import java.util.ArrayList;
import java.util.HashMap;
@ -204,6 +207,37 @@ public class PadMainActivity extends BaseActivity {
super.onDestroy();
}
/**
* 获取提示数量
*/
public void getHintNum() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailUnReadCount()
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseSuccessBean bean) {
setEmailHint(bean.getData());
}
@Override
public void onError(@NonNull Throwable e) {
mTvEmailHint.setVisibility(View.GONE);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void onResume() {
super.onResume();
@ -216,6 +250,7 @@ public class PadMainActivity extends BaseActivity {
.error(R.drawable.ic_user_default)
.placeholder(R.drawable.ic_user_default))
.into(mIvUserIcon);
getHintNum();
}
//适配虚拟按钮
@ -246,7 +281,6 @@ public class PadMainActivity extends BaseActivity {
break;
}
setStatusBarStyle();
}
private void chooseHome() {
@ -333,24 +367,28 @@ public class PadMainActivity extends BaseActivity {
//隐藏上一个fragment
if (mPreFragment != null) {
fragmentTransaction.hide(mPreFragment)
.setCustomAnimations(R.anim.slide_right_in,
.setCustomAnimations(
R.anim.slide_right_in,
R.anim.slide_left_out,
R.anim.slide_left_in,
R.anim.slide_right_out);
}
if (fragment.isAdded()) {
fragmentTransaction.show(fragment)
.setCustomAnimations(R.anim.slide_right_in,
R.anim.slide_left_out,
R.anim.slide_left_in,
R.anim.slide_right_out)
fragmentTransaction.setCustomAnimations(
R.anim.slide_right_in,
R.anim.slide_left_out,
R.anim.slide_left_in,
R.anim.slide_right_out)
.show(fragment)
.commit();
} else {
fragmentTransaction.add(R.id.fl_content, fragment, tag)
.setCustomAnimations(R.anim.slide_right_in,
fragmentTransaction
.setCustomAnimations(
R.anim.slide_right_in,
R.anim.slide_left_out,
R.anim.slide_left_in,
R.anim.slide_right_out)
.add(R.id.fl_content, fragment, tag)
.commit();
}
mPreFragment = fragment;
@ -404,18 +442,28 @@ public class PadMainActivity extends BaseActivity {
@Override
public void refreshContent(String... s) {
if (s != null && s.length > 0) {
int i = Integer.parseInt(s[0]);
if (i <= 0) {
mTvEmailHint.setVisibility(View.GONE);
} else {
mTvEmailHint.setVisibility(View.VISIBLE);
if (i > 99) {
mTvEmailHint.setText("99+");
setEmailHint(s[0]);
}
private void setEmailHint(String num) {
try {
if (!TextUtils.isEmpty(num)) {
int i = Integer.parseInt(num);
if (i <= 0) {
mTvEmailHint.setVisibility(View.GONE);
} else {
mTvEmailHint.setText(s[0]);
mTvEmailHint.setVisibility(View.VISIBLE);
if (i > 99) {
mTvEmailHint.setText("99+");
} else {
mTvEmailHint.setText(num);
}
}
} else {
mTvEmailHint.setVisibility(View.GONE);
}
} catch (Exception e) {
mTvEmailHint.setVisibility(View.GONE);
}
}
@ -443,6 +491,10 @@ public class PadMainActivity extends BaseActivity {
list.remove(fragment);
BaseFragment showFragment = list.get(list.size() - 1);
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.slide_right_in,
R.anim.slide_left_out,
R.anim.slide_left_in,
R.anim.slide_right_out)
.remove(fragment)
.show(showFragment)
.commit();
@ -503,4 +555,16 @@ public class PadMainActivity extends BaseActivity {
@Override
protected void doSearchByTitle() {
}
/**
* 刷新用户头像
*/
public void notifyUserIcon() {
Glide.with(mActivity)
.load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar())
.apply(RequestOptions.bitmapTransform(new CircleCrop())
.error(R.drawable.ic_user_default)
.placeholder(R.drawable.ic_user_default))
.into(mIvUserIcon);
}
}

View File

@ -1,5 +1,6 @@
package com.tenlionsoft.oamodule.pad.fragments;
import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
@ -7,15 +8,18 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -58,6 +62,7 @@ public class PadEmailFragment extends BaseFragment {
LinearLayout mLlRecycleBox;
@BindView(R2.id.ll_content)
LinearLayout mLlContent;
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
@ -70,34 +75,35 @@ public class PadEmailFragment extends BaseFragment {
setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
mIvAdd.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_EMAIL_SEND)
.navigation());
mLlSendBox.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_EMAIL_SENTBOX)
.navigation());//发件箱
mLlRecycleBox.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_EMAIL_RECYCLE)
.navigation());//回收站
mLlDraftBox.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_EMAIL_DRAFT)
.navigation());//草稿箱
mRlInbox.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_EMAIL_INBOX)
.navigation());//收件箱
mLlBaseSearchCancelTitle.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_EMAIL_INBOX)
.withString("key", "search")
.withTransition(R.anim.anim_fade_in, R.anim.anim_fade_out)
.navigation(mActivity));
mIvAdd.setOnClickListener(v -> openFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND));//发邮件
mLlSendBox.setOnClickListener(v -> openFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND_BOX));//发件箱
mLlRecycleBox.setOnClickListener(v -> openFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_RECYCLE_BOX));//回收站
mLlDraftBox.setOnClickListener(v -> openFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_DRAFT_BOX));//草稿箱
mRlInbox.setOnClickListener(v -> openFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_BOX));//收件箱
mLlBaseSearchCancelTitle.setOnClickListener(v -> {
BaseFragment fragment = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_BOX, "key", "search");
mMainActivity.addFragment(3, fragment);
});
getInboxList();
}
private void openFragment(String path) {
BaseFragment fragment = FragmentUtils.getFragment(path);
mMainActivity.addFragment(3, fragment);
}
@Override
public void onResume() {
super.onResume();
//获取各个类型个数
getInboxList();
public void onAttach(@androidx.annotation.NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
getInboxList();
}
}
/**
@ -117,13 +123,11 @@ public class PadEmailFragment extends BaseFragment {
@Override
public void onNext(@NonNull BaseSuccessBean bean) {
mTvInboxNum.setText(bean.getData() + "");
mActivity.refreshContent(bean.getData());
}
@Override
public void onError(@NonNull Throwable e) {
mTvInboxNum.setText("0");
mActivity.refreshContent("0");
}
@Override

View File

@ -1,6 +1,8 @@
package com.tenlionsoft.oamodule.pad.fragments;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
@ -17,7 +19,6 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.request.RequestOptions;
@ -34,7 +35,9 @@ import com.tenlionsoft.baselib.core.beans.UserInfoBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.core.widget.views.ButtomDialogView;
import com.tenlionsoft.baselib.utils.AesUtil;
import com.tenlionsoft.baselib.utils.AppUtils;
@ -46,12 +49,18 @@ import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.beans.UserRecordDetailBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.util.ArrayList;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.core.content.FileProvider;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -97,6 +106,7 @@ public class PadMineFragment extends BaseFragment {
@BindView(R2.id.ll_login_out)
LinearLayout mLlLoginOut;
private String mPicPath;
private PadMainActivity mMainActivity;
private ActivityResultLauncher<Intent> mLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
@ -120,6 +130,7 @@ public class PadMineFragment extends BaseFragment {
}
});
@Override
protected int getContentViewId() {
return R.layout.fragment_pad_mine;
@ -132,20 +143,72 @@ public class PadMineFragment extends BaseFragment {
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
mLlLoginOut.setOnClickListener(v -> doLoginOut());//退出登录
mLlAboutUs.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_RECORD_USER_DETAIL)
.navigation());
mLlSchedule.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_SCHEDULE)
.navigation());//我的日程
mLlDayWork.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_OA_ACTIVITY_ROUTINE_WORK)
.navigation());//日常工作
mLlAboutUs.setOnClickListener(v -> getDetailData());//个人档案
mLlSchedule.setOnClickListener(v -> {
BaseFragment fragment = FragmentUtils.getFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SCHEDULE);
mMainActivity.addFragment(4, fragment);
});//我的日程
mLlDayWork.setOnClickListener(v -> {
BaseFragment fragment = FragmentUtils.getFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_ROUTINE_WORK);
mMainActivity.addFragment(4, fragment);
});//日常工作
mIvUserIcon.setOnClickListener(v -> changeUserIcon());
setUserInfo();
}
/**
* 获取个人档案是否录入
*/
private void getDetailData() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.getUserRecordDetailById()
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<UserRecordDetailBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull UserRecordDetailBean userRecordDetailBean) {
if (dialog.isShowing()) dialog.dismiss();
if (!TextUtils.isEmpty(userRecordDetailBean.getUserArchivesId())) {
BaseFragment fragment = FragmentUtils.getFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_DETAIL);
mMainActivity.addFragment(4, fragment);
} else {
showConfirmDialog();
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void showConfirmDialog() {
new AlertDialog.Builder(mActivity)
.setTitle("提示")
.setMessage("您目前未录入个人档案,现在是否去录入?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
BaseFragment fragment = FragmentUtils.getFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_ADD);
mMainActivity.addFragment(4, fragment);
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
@ -154,8 +217,14 @@ public class PadMineFragment extends BaseFragment {
}
@Override
public void onResume() {
super.onResume();
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
setUserInfo();
}
}
private void setUserInfo() {
Glide.with(mActivity)
.load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar())
.apply(RequestOptions.bitmapTransform(new CircleCrop())
@ -172,9 +241,13 @@ public class PadMineFragment extends BaseFragment {
mTvDept.setText(depts.get(0).getDepartmentName());
}
}
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
/**
* 选择上传的图片
@ -366,6 +439,7 @@ public class PadMineFragment extends BaseFragment {
.placeholder(R.drawable.ic_user_default))
.into(mIvUserIcon);
ToastUtils.show("头像修改成功.");
mMainActivity.notifyUserIcon();
} else {
ToastUtils.show("头像修改失败,请稍后重试.");
}

View File

@ -0,0 +1,227 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.core.widget.views.CustomStateView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.adapter.EmailAdapter;
import com.tenlionsoft.oamodule.beans.EmailDraftListBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
/**
* 作者: adam
* 日期: 2022/5/11 - 10:16
* 邮箱: itgaojian@163.com
* 描述: 平板草稿箱
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_DRAFT_BOX)
public class DraftBoxFragment extends BaseFragment {
@BindView(R2.id.et_base_search_cancel)
EditText mEtBaseSearchCancel;
@BindView(R2.id.tv_base_search_cancel)
TextView mTvBaseSearchCancel;
@BindView(R2.id.ll_base_search_cancel)
LinearLayout mLlBaseSearchCancel;
@BindView(R2.id.rlv_content)
RecyclerView mRlvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.csv_state)
CustomStateView mCsvState;
private PadMainActivity mMainActivity;
private EmailAdapter mAdapter;
private List<Object> mDatas;
private int mCurrentPage = 1;
private String mKeywords = "";
@Override
protected int getContentViewId() {
return R.layout.fragment_draft_box;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
setTitleView(true);
mTvFragmentTitle.setText("草稿箱");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
mSrlContent.setOnRefreshListener(v -> doRefresh());
mDatas = new ArrayList<>();
mAdapter = new EmailAdapter(mActivity, mDatas);
mRlvContent.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvContent.setAdapter(mAdapter);
mAdapter.addOnItemClickListener(rowsBean -> {
BaseFragment fragment = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_DRAFT_DETAIL, "id", ((EmailDraftListBean.RowsBean) rowsBean).getMailId());
mMainActivity.addFragment(3, fragment);
});
mCsvState.setState(CustomStateView.STATE_LOAD);
doRefresh();
mEtBaseSearchCancel.setOnEditorActionListener((v, actionId, event) -> {
LogUtils.e("搜索==" + actionId);
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
mActivity.hideSoftKeyboard();
mEtBaseSearchCancel.clearFocus();
mKeywords = v.getText().toString();
doRefresh();
return true;
} else {
return false;
}
});
mTvBaseSearchCancel.setOnClickListener(v -> {
mEtBaseSearchCancel.setText("");
mEtBaseSearchCancel.clearFocus();
mKeywords = "";
doRefresh();
});
}
/**
* 加载更多
*/
private void doLoadMore() {
getDraftList(mCurrentPage);
}
/**
* 刷新
*/
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getDraftList(1);
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mIsRefresh) {
mIsRefresh = false;
doRefresh();
}
}
}
/**
* 获取文档列表
*/
private void getDraftList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailDraftList(mKeywords, mCurrentPage + "")
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailDraftListBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailDraftListBean listBean) {
if (listBean.getRows() != null && listBean.getRows().size() > 0) {
++mCurrentPage;
if (currentPage == 1) {
mDatas.clear();
mDatas.addAll(listBean.getRows());
} else {
mDatas.addAll(listBean.getRows());
}
mCsvState.setState(CustomStateView.STATE_SUCCESS);
mAdapter.notifyDataSetChanged();
mSrlContent.finishRefresh();
if (mDatas.size() >= listBean.getTotal()) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(false);
}
} else {
mSrlContent.finishRefresh();
mSrlContent.finishLoadMore();
if (currentPage > 1) {
mSrlContent.setNoMoreData(true);
} else {
if (TextUtils.isEmpty(mKeywords)) {
//无数据
mCsvState.setState(CustomStateView.STATE_EMPTY);
} else {
mCsvState.setState(CustomStateView.STATE_EMPTY);
ToastUtils.show("未查询到相关内容");
}
}
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
mSrlContent.finishLoadMore();
mSrlContent.finishRefresh();
ExceptionHandler.handleException(e);
mCsvState.setState(CustomStateView.STATE_ERROR);
}
@Override
public void onComplete() {
}
});
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,325 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddFileBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.retrofit_net.bean.FileInfoBean;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.AddFileAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.FileUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.beans.EmailDraftDetailBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import static com.tenlionsoft.baselib.core.widget.PhotoActivity.TAG_IMGURL;
/**
* 作者: adam
* 日期: 2022/5/11 - 10:44
* 邮箱: itgaojian@163.com
* 描述:
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_DRAFT_DETAIL)
public class DraftDetailFragment extends BaseFragment {
@BindView(R2.id.tv_title)
TextView mTvTitle;
@BindView(R2.id.tv_receiver)
TextView mTvReceiver;
@BindView(R2.id.tv_copy)
TextView mTvCopy;
@BindView(R2.id.tv_secret)
TextView mTvSecret;
@BindView(R2.id.tv_time)
TextView mTvTime;
@BindView(R2.id.tv_content)
TextView mTvContent;
@BindView(R2.id.rlv_files)
RecyclerView mRlvFiles;
@BindView(R2.id.iv_del)
ImageView mIvDel;
@BindView(R2.id.iv_transfer)
ImageView mIvTransfer;
private PadMainActivity mMainActivity;
private String mId;
@Override
protected int getContentViewId() {
return R.layout.fragment_draft_detail;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("邮件");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
Bundle bundle = getArguments();
if (bundle != null) {
mId = bundle.getString("id");
}
if (TextUtils.isEmpty(mId)) {
ToastUtils.show("数据有误");
mMainActivity.backFragment(3, this);
} else {
getDetailById();
}
mActivity.setTouchDelegate(mIvDel, 30);
mActivity.setTouchDelegate(mIvTransfer, 30);
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void getDetailById() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailDraftDetail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailDraftDetailBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailDraftDetailBean emailSendDetailBean) {
setDataToView(emailSendDetailBean);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
setStateView(STATE_ERROR);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void setDataToView(EmailDraftDetailBean b) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
mTvTitle.setText(b.getTitle());
mTvReceiver.setText("收件: " + b.getRecipientNames());
mTvCopy.setText("抄送: " + b.getCopyForNames());
mTvSecret.setText("密送: " + b.getSecretNames());
mTvTime.setText(b.getGmtCreate() + "(草稿)");
mTvContent.setText(Html.fromHtml(b.getContent()));
mIvDel.setOnClickListener(v -> onShowConfirm(1));
mIvTransfer.setOnClickListener(v -> onShowConfirm(2));
if (!TextUtils.isEmpty(b.getMailFiles())) {
doGetFileInfo(b.getMailFiles(), null);
}
}
private List<AddFileBean> mFileBeans;
private AddFileAdapter mAddFileAdapter;
private void doGetFileInfo(String fileId, List<AddFileBean> files) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(BaseApiService.class)
.getFileInfoList(fileId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<List<FileInfoBean>>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull List<FileInfoBean> fileInfoBeans) {
if (dialog.isShowing()) dialog.dismiss();
if (fileInfoBeans.size() > 0) {
mFileBeans = new ArrayList<>();
mAddFileAdapter = new AddFileAdapter(mActivity, mFileBeans);
mRlvFiles.setLayoutManager(new GridLayoutManager(mActivity, 5));
mRlvFiles.setAdapter(mAddFileAdapter);
for (int i = 0; i < fileInfoBeans.size(); i++) {
FileInfoBean infoBean = fileInfoBeans.get(i);
AddFileBean bean = new AddFileBean();
bean.setId(infoBean.getFileId());
bean.setFileName(infoBean.getFileName());
bean.setFileType(FileUtils.getFileType(infoBean.getFileName()));
bean.setPath(BaseUrlApi.BASE_FILE_URL + infoBean.getFileId());
mFileBeans.add(0, bean);
}
mAddFileAdapter.setData(mFileBeans);
mAddFileAdapter.addOnItemClickListener(addFileBean -> {
if (addFileBean.getFileType() == 1) {
//文档
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_ACTIVITY_PREVIEW_FILE)
.withString("fileName", addFileBean.getFileName())
.withString("fileId", addFileBean.getId())
.navigation();
} else if (2 == addFileBean.getFileType()) {
//图片预览
//遍历文件获取所有图片文件
ArrayList<String> imgUrls = new ArrayList<>();
for (int i = 0; i < mFileBeans.size(); i++) {
if (mFileBeans.get(i).getFileType() == 2) {
AddFileBean fileBean = mFileBeans.get(i);
String url = BaseUrlApi.BASE_IMG_URL + fileBean.getId();
imgUrls.add(url);
}
}
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList(TAG_IMGURL, imgUrls)
.navigation();
} else if (3 == addFileBean.getFileType() || 4 == addFileBean.getFileType()) {
//TODO 视频或音频预览
}
});
} else {
ToastUtils.show("未找到文档信息");
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void onShowConfirm(int type) {
new AlertDialog.Builder(mActivity)
.setTitle("提示")
.setMessage(type == 1 ? "确定要删除该邮件到回收站吗?" : "是否要去发送邮件?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
if (type == 1) {
doDelEmail();
} else {
mMainActivity.backFragment(3, DraftDetailFragment.this);
Map<String, Object> params = new HashMap<>();
params.put("id", mId);
params.put("type", "draft");
BaseFragment fragment = FragmentUtils.getFragmentMap(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND, params);
mMainActivity.addFragment(3, fragment);
}
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mIsRefresh) {
setStateView(STATE_LOAD);
getDetailById();
}
}
}
private void doDelEmail() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "删除中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.doDelEmailDraft(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("删除成功");
BaseFragment preFragment = mMainActivity.getPreFragment();
if (preFragment != null) {
preFragment.mIsRefresh = true;
}
mMainActivity.backFragment(3, DraftDetailFragment.this);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,267 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.core.widget.views.CustomStateView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.adapter.EmailAdapter;
import com.tenlionsoft.oamodule.beans.EmailInboxListBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
/**
* 作者: adam
* 日期: 2022/5/11 - 08:50
* 邮箱: itgaojian@163.com
* 描述: 平板收件箱
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_BOX)
public class InBoxFragment extends BaseFragment {
@BindView(R2.id.et_base_search_cancel)
EditText mEtBaseSearchCancel;
@BindView(R2.id.tv_base_search_cancel)
TextView mTvBaseSearchCancel;
@BindView(R2.id.ll_base_search_cancel)
LinearLayout mLlBaseSearchCancel;
@BindView(R2.id.rlv_content)
RecyclerView mRlvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.csv_state)
CustomStateView mCsvState;
private PadMainActivity mMainActivity;
private EmailAdapter mAdapter;
private List<Object> mDatas;
private int mCurrentPage = 1;
private String mKeywords = "";
@Override
protected int getContentViewId() {
return R.layout.fragment_email_in_box;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
setTitleView(true);
mTvFragmentTitle.setText("收件箱");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
mSrlContent.setOnRefreshListener(v -> doRefresh());
mDatas = new ArrayList<>();
mAdapter = new EmailAdapter(mActivity, mDatas);
mRlvContent.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvContent.setAdapter(mAdapter);
mAdapter.addOnItemClickListener(rowsBean -> {
BaseFragment fragment = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_DETAIL, "id", ((EmailInboxListBean.RowsBean) rowsBean).getId());
mMainActivity.addFragment(3, fragment);
InDetailFragment detailFragment = (InDetailFragment) fragment;
detailFragment.setOnRefreshItemListener(id -> {
if (!TextUtils.isEmpty(id)) {
//遍历集合
for (int i = 0; i < mDatas.size(); i++) {
try {
EmailInboxListBean.RowsBean bean = (EmailInboxListBean.RowsBean) mDatas.get(i);
if (id.equals(bean.getId())) {
bean.setReadTag(1);
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
mAdapter.setData(mDatas);
}
});
});
doRefresh();
Bundle bundle = getArguments();
String key = "";
if (bundle != null) {
key = bundle.getString("key");
}
if (!TextUtils.isEmpty(key)) {
showSoftKeyboard(mEtBaseSearchCancel);
}
mEtBaseSearchCancel.setOnEditorActionListener((v, actionId, event) -> {
LogUtils.e("搜索==" + actionId);
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
mActivity.hideSoftKeyboard();
mEtBaseSearchCancel.clearFocus();
mKeywords = v.getText().toString();
doRefresh();
return true;
} else {
return false;
}
});
mTvBaseSearchCancel.setOnClickListener(v -> {
mEtBaseSearchCancel.setText("");
mEtBaseSearchCancel.clearFocus();
mKeywords = "";
doRefresh();
});
}
public void showSoftKeyboard(EditText editText) {
if (editText != null) {
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
//请求获得焦点
editText.requestFocus();
//调用系统输入法
InputMethodManager inputManager = (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
inputManager.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
}
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
/**
* 加载更多
*/
private void doLoadMore() {
getInboxList(mCurrentPage);
}
/**
* 刷新
*/
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getInboxList(1);
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mIsRefresh) {
mIsRefresh = false;
doRefresh();
}
}
}
/**
* 获取文档列表
*/
private void getInboxList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailInboxList(mKeywords, mCurrentPage + "")
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailInboxListBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailInboxListBean listBean) {
if (listBean.getRows() != null && listBean.getRows().size() > 0) {
++mCurrentPage;
if (currentPage == 1) {
mDatas.clear();
mDatas.addAll(listBean.getRows());
} else {
mDatas.addAll(listBean.getRows());
}
mCsvState.setState(CustomStateView.STATE_SUCCESS);
mAdapter.notifyDataSetChanged();
mSrlContent.finishRefresh();
if (mDatas.size() >= listBean.getTotal()) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(false);
}
} else {
mSrlContent.finishRefresh();
mSrlContent.finishLoadMore();
if (currentPage > 1) {
mSrlContent.setNoMoreData(true);
} else {
if (TextUtils.isEmpty(mKeywords)) {
//无数据
mCsvState.setState(CustomStateView.STATE_EMPTY);
} else {
mCsvState.setState(CustomStateView.STATE_EMPTY);
ToastUtils.show("未查询到相关内容");
}
}
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
mSrlContent.finishLoadMore();
mSrlContent.finishRefresh();
ExceptionHandler.handleException(e);
mCsvState.setState(CustomStateView.STATE_ERROR);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,357 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddFileBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.retrofit_net.bean.FileInfoBean;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.AddFileAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.FileUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.beans.EmailInboxDetailBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import static com.tenlionsoft.baselib.core.widget.PhotoActivity.TAG_IMGURL;
/**
* 作者: adam
* 日期: 2022/5/11 - 10:57
* 邮箱: itgaojian@163.com
* 描述:
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_IN_DETAIL)
public class InDetailFragment extends BaseFragment {
@BindView(R2.id.tv_title)
TextView mTvTitle;
@BindView(R2.id.tv_sender)
TextView mTvSender;
@BindView(R2.id.tv_time)
TextView mTvTime;
@BindView(R2.id.tv_content)
TextView mTvContent;
@BindView(R2.id.rlv_files)
RecyclerView mRlvFiles;
@BindView(R2.id.iv_del)
ImageView mIvDel;
@BindView(R2.id.iv_transfer)
ImageView mIvTransfer;
private String mId;
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_in_detail;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("邮件");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
Bundle bundle = getArguments();
if (bundle != null) {
mId = bundle.getString("id");
}
if (TextUtils.isEmpty(mId)) {
ToastUtils.show("数据有误");
mMainActivity.backFragment(3, this);
} else {
initView();
getDetailById();
}
mActivity.setTouchDelegate(mIvDel, 30);
mActivity.setTouchDelegate(mIvTransfer, 30);
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void initView() {
mIvDel.setOnClickListener(v -> onShowConfirm(1));
mIvTransfer.setOnClickListener(v -> onShowConfirm(2));
}
private void onShowConfirm(int type) {
new AlertDialog.Builder(mActivity)
.setTitle("提示")
.setMessage(type == 1 ? "确定要将该邮件删除至回收站吗?" : "确定要转发该邮件吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
if (type == 1) {
doDelEmail();
} else {
mMainActivity.backFragment(3, InDetailFragment.this);
Map<String, Object> params = new HashMap<>();
params.put("id", mId);
params.put("type", "inbox");
BaseFragment fragment = FragmentUtils.getFragmentMap(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND, params);
mMainActivity.addFragment(3, fragment);
}
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
private void doDelEmail() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "删除中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.doDelEmailInbox(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("删除成功");
BaseFragment preFragment = mMainActivity.getPreFragment();
if (preFragment != null) {
preFragment.mIsRefresh = true;
}
mMainActivity.backFragment(3, InDetailFragment.this);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void getDetailById() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailInboxDetail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailInboxDetailBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailInboxDetailBean emailInboxDetailBean) {
setDataToView(emailInboxDetailBean);
doSaveReadState();
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
setStateView(STATE_ERROR);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 显示数据
*/
private void setDataToView(EmailInboxDetailBean bean) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
mTvTitle.setText(bean.getTitle());
mTvSender.setText(bean.getCreatorNames());
mTvTime.setText(bean.getGmtCreate() + "(收件)");
mTvContent.setText(Html.fromHtml(bean.getContent()));
if (!TextUtils.isEmpty(bean.getMailFiles())) {
doGetFileInfo(bean.getMailFiles(), null);
}
}
private List<AddFileBean> mFileBeans;
private AddFileAdapter mAddFileAdapter;
private void doGetFileInfo(String fileId, List<AddFileBean> files) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(BaseApiService.class)
.getFileInfoList(fileId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<List<FileInfoBean>>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull List<FileInfoBean> fileInfoBeans) {
if (dialog.isShowing()) dialog.dismiss();
if (fileInfoBeans.size() > 0) {
mFileBeans = new ArrayList<>();
mAddFileAdapter = new AddFileAdapter(mActivity, mFileBeans);
mRlvFiles.setLayoutManager(new GridLayoutManager(mActivity, 5));
mRlvFiles.setAdapter(mAddFileAdapter);
for (int i = 0; i < fileInfoBeans.size(); i++) {
FileInfoBean infoBean = fileInfoBeans.get(i);
AddFileBean bean = new AddFileBean();
bean.setId(infoBean.getFileId());
bean.setFileName(infoBean.getFileName());
bean.setFileType(FileUtils.getFileType(infoBean.getFileName()));
bean.setPath(BaseUrlApi.BASE_FILE_URL + infoBean.getFileId());
mFileBeans.add(0, bean);
}
mAddFileAdapter.setData(mFileBeans);
mAddFileAdapter.addOnItemClickListener(addFileBean -> {
if (addFileBean.getFileType() == 1) {
//文档
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_ACTIVITY_PREVIEW_FILE)
.withString("fileName", addFileBean.getFileName())
.withString("fileId", addFileBean.getId())
.navigation();
} else if (2 == addFileBean.getFileType()) {
//图片预览
//遍历文件获取所有图片文件
ArrayList<String> imgUrls = new ArrayList<>();
for (int i = 0; i < mFileBeans.size(); i++) {
if (mFileBeans.get(i).getFileType() == 2) {
AddFileBean fileBean = mFileBeans.get(i);
String url = BaseUrlApi.BASE_IMG_URL + fileBean.getId();
imgUrls.add(url);
}
}
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList(TAG_IMGURL, imgUrls)
.navigation();
} else if (3 == addFileBean.getFileType() || 4 == addFileBean.getFileType()) {
//TODO 视频或音频预览
}
});
} else {
ToastUtils.show("未找到文档信息");
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void doSaveReadState() {
RetrofitManager
.getInstance()
.create(OAApi.class)
.doSaveEmailRead(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull BaseSuccessBean baseSuccessBean) {
if (mOnRefreshItem != null) {
mOnRefreshItem.doRefreshItem(mId);
mMainActivity.getHintNum();
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
private OnRefreshItem mOnRefreshItem;
public void setOnRefreshItemListener(OnRefreshItem refreshItem) {
this.mOnRefreshItem = refreshItem;
}
public interface OnRefreshItem {
void doRefreshItem(String id);
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,284 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.core.widget.views.CustomStateView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.adapter.EmailAdapter;
import com.tenlionsoft.oamodule.beans.EmailRecycleListBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
/**
* 作者: adam
* 日期: 2022/5/11 - 10:16
* 邮箱: itgaojian@163.com
* 描述: 平板回收站
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_RECYCLE_BOX)
public class RecycleBoxFragment extends BaseFragment {
@BindView(R2.id.et_base_search_cancel)
EditText mEtBaseSearchCancel;
@BindView(R2.id.tv_base_search_cancel)
TextView mTvBaseSearchCancel;
@BindView(R2.id.ll_base_search_cancel)
LinearLayout mLlBaseSearchCancel;
@BindView(R2.id.rlv_content)
RecyclerView mRlvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.csv_state)
CustomStateView mCsvState;
private EmailAdapter mAdapter;
private List<Object> mDatas;
private int mCurrentPage = 1;
private String mKeywords = "";
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_recycle_box;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
setTitleView(true);
mTvFragmentTitle.setText("回收站");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
mTvFragmentOption.setText("清空");
mTvFragmentOption.setOnClickListener(v -> onShowConfirm());
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
mSrlContent.setOnRefreshListener(v -> doRefresh());
mDatas = new ArrayList<>();
mAdapter = new EmailAdapter(mActivity, mDatas);
mRlvContent.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvContent.setAdapter(mAdapter);
mAdapter.addOnItemClickListener(rowsBean -> {
BaseFragment fragment = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_RECYCLE_DETAIL, "id", ((EmailRecycleListBean.RowsBean) rowsBean).getId());
mMainActivity.addFragment(3, fragment);
});
// 来源(send:发件箱,inbox:收件箱,draft:草稿箱)
mCsvState.setState(CustomStateView.STATE_LOAD);
doRefresh();
mEtBaseSearchCancel.setOnEditorActionListener((v, actionId, event) -> {
LogUtils.e("搜索==" + actionId);
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
mActivity.hideSoftKeyboard();
mEtBaseSearchCancel.clearFocus();
mKeywords = v.getText().toString();
doRefresh();
return true;
} else {
return false;
}
});
mTvBaseSearchCancel.setOnClickListener(v -> {
mEtBaseSearchCancel.setText("");
mEtBaseSearchCancel.clearFocus();
mKeywords = "";
doRefresh();
});
}
@Override
public void onAttach(@androidx.annotation.NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mIsRefresh) {
mIsRefresh = false;
doRefresh();
}
}
}
private void onShowConfirm() {
new AlertDialog.Builder(mActivity)
.setTitle("提示")
.setIcon(android.R.drawable.ic_dialog_alert)
.setMessage("清空回收站邮件将无法回复,确定要清空回收站吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
doClearRecycler();
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
/**
* 清空回收站
*/
private void doClearRecycler() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "删除中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.doDelEmailRecycleAll()
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("清空成功");
doRefresh();
}
@Override
public void onError(@NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 加载更多
*/
private void doLoadMore() {
getRecycleList(mCurrentPage);
}
/**
* 刷新
*/
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getRecycleList(1);
}
/**
* 获取文档列表
*/
private void getRecycleList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailRecycleList(mKeywords, mCurrentPage + "")
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailRecycleListBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull EmailRecycleListBean listBean) {
if (listBean.getRows() != null && listBean.getRows().size() > 0) {
++mCurrentPage;
if (currentPage == 1) {
mDatas.clear();
mDatas.addAll(listBean.getRows());
} else {
mDatas.addAll(listBean.getRows());
}
mCsvState.setState(CustomStateView.STATE_SUCCESS);
mAdapter.notifyDataSetChanged();
mSrlContent.finishRefresh();
if (mDatas.size() >= listBean.getTotal()) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(false);
}
} else {
mSrlContent.finishRefresh();
mSrlContent.finishLoadMore();
if (currentPage > 1) {
mSrlContent.setNoMoreData(true);
} else {
if (TextUtils.isEmpty(mKeywords)) {
//无数据
mCsvState.setState(CustomStateView.STATE_EMPTY);
} else {
mCsvState.setState(CustomStateView.STATE_EMPTY);
ToastUtils.show("未查询到相关内容");
}
}
}
}
@Override
public void onError(@NonNull Throwable e) {
mSrlContent.finishLoadMore();
mSrlContent.finishRefresh();
ExceptionHandler.handleException(e);
mCsvState.setState(CustomStateView.STATE_ERROR);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,364 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddFileBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.retrofit_net.bean.FileInfoBean;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.AddFileAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.FileUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.beans.EmailRecycleDetailBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import static com.tenlionsoft.baselib.core.widget.PhotoActivity.TAG_IMGURL;
/**
* 作者: adam
* 日期: 2022/5/11 - 11:33
* 邮箱: itgaojian@163.com
* 描述: 回收站详情
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_RECYCLE_DETAIL)
public class RecycleDetailFragment extends BaseFragment {
@BindView(R2.id.tv_title)
TextView mTvTitle;
@BindView(R2.id.tv_sender)
TextView mTvSender;
@BindView(R2.id.tv_receiver)
TextView mTvReceiver;
@BindView(R2.id.tv_copy)
TextView mTvCopy;
@BindView(R2.id.tv_secret)
TextView mTvSecret;
@BindView(R2.id.tv_time)
TextView mTvTime;
@BindView(R2.id.tv_content)
TextView mTvContent;
@BindView(R2.id.rlv_files)
RecyclerView mRlvFiles;
@BindView(R2.id.iv_del)
ImageView mIvDel;
@BindView(R2.id.iv_transfer)
ImageView mIvTransfer;
private PadMainActivity mMainActivity;
private String mId;
@Override
protected int getContentViewId() {
return R.layout.fragment_recycle_detail;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("邮件");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
Bundle bundle = getArguments();
if (bundle != null) {
mId = bundle.getString("id");
}
if (TextUtils.isEmpty(mId)) {
ToastUtils.show("数据有误");
mMainActivity.backFragment(3, this);
} else {
getDetailById();
}
mActivity.setTouchDelegate(mIvDel, 30);
mActivity.setTouchDelegate(mIvTransfer, 30);
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void getDetailById() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailRecycleDetail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailRecycleDetailBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailRecycleDetailBean emailRecycleDetailBean) {
setDataToView(emailRecycleDetailBean);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
setStateView(STATE_ERROR);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void setDataToView(EmailRecycleDetailBean b) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
//来源(send:发件箱,inbox:收件箱,draft:草稿箱)
mTvTitle.setText(b.getTitle());
if ("inbox".equals(b.getSourceFrom())) {
//收件箱
mTvSender.setText("发件:" + b.getCreatorNames());
mTvReceiver.setVisibility(View.GONE);
mTvCopy.setVisibility(View.GONE);
mTvSecret.setVisibility(View.GONE);
mTvTime.setText(b.getGmtCreate() + "(收件)");
} else {
//发件箱与草稿箱
mTvSender.setVisibility(View.GONE);
mTvReceiver.setText("收件:" + b.getRecipientNames());
mTvCopy.setText("抄送:" + b.getCopyForNames());
mTvSecret.setText("密送:" + b.getSecretNames());
mTvTime.setText(b.getGmtCreate() + ("send".equals(b.getSourceFrom()) ? "(发件)" : "(草稿)"));
}
mTvContent.setText(Html.fromHtml(b.getContent()));
//回显附件
if (!TextUtils.isEmpty(b.getMailFiles())) {
doGetFileInfo(b.getMailFiles(), null);
}
mIvDel.setOnClickListener(v -> onShowConfirm(1));
mIvTransfer.setOnClickListener(v -> onShowConfirm(2));
}
private void onShowConfirm(int type) {
new AlertDialog.Builder(mActivity)
.setTitle("提示")
.setMessage(1 == type ? "确定要删除该邮件吗?" : "确定要恢复该邮件吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
if (type == 1) {
doDelEmail();
} else {
doRecoverEmail();
}
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
/**
* 恢复邮件
*/
private void doRecoverEmail() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "恢复中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.doRecoverEmail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("恢复成功");
BaseFragment preFragment = mMainActivity.getPreFragment();
if (preFragment != null) {
preFragment.mIsRefresh = true;
}
mMainActivity.backFragment(3, RecycleDetailFragment.this);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 删除邮件
*/
private void doDelEmail() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "删除中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.doDelEmailRecycle(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("删除成功");
BaseFragment preFragment = mMainActivity.getPreFragment();
if (preFragment != null) {
preFragment.mIsRefresh = true;
}
mMainActivity.backFragment(3, RecycleDetailFragment.this);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private List<AddFileBean> mFileBeans;
private AddFileAdapter mAddFileAdapter;
private void doGetFileInfo(String fileId, List<AddFileBean> files) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(BaseApiService.class)
.getFileInfoList(fileId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<List<FileInfoBean>>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull List<FileInfoBean> fileInfoBeans) {
if (dialog.isShowing()) dialog.dismiss();
if (fileInfoBeans.size() > 0) {
mFileBeans = new ArrayList<>();
mAddFileAdapter = new AddFileAdapter(mActivity, mFileBeans);
mRlvFiles.setLayoutManager(new GridLayoutManager(mActivity, 5));
mRlvFiles.setAdapter(mAddFileAdapter);
for (int i = 0; i < fileInfoBeans.size(); i++) {
FileInfoBean infoBean = fileInfoBeans.get(i);
AddFileBean bean = new AddFileBean();
bean.setId(infoBean.getFileId());
bean.setFileName(infoBean.getFileName());
bean.setFileType(FileUtils.getFileType(infoBean.getFileName()));
bean.setPath(BaseUrlApi.BASE_FILE_URL + infoBean.getFileId());
mFileBeans.add(0, bean);
}
mAddFileAdapter.setData(mFileBeans);
mAddFileAdapter.addOnItemClickListener(addFileBean -> {
if (addFileBean.getFileType() == 1) {
//文档
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_ACTIVITY_PREVIEW_FILE)
.withString("fileName", addFileBean.getFileName())
.withString("fileId", addFileBean.getId())
.navigation();
} else if (2 == addFileBean.getFileType()) {
//图片预览
//遍历文件获取所有图片文件
ArrayList<String> imgUrls = new ArrayList<>();
for (int i = 0; i < mFileBeans.size(); i++) {
if (mFileBeans.get(i).getFileType() == 2) {
AddFileBean fileBean = mFileBeans.get(i);
String url = BaseUrlApi.BASE_IMG_URL + fileBean.getId();
imgUrls.add(url);
}
}
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList(TAG_IMGURL, imgUrls)
.navigation();
} else if (3 == addFileBean.getFileType() || 4 == addFileBean.getFileType()) {
//TODO 视频或音频预览
}
});
} else {
ToastUtils.show("未找到文档信息");
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,225 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.core.widget.views.CustomStateView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.adapter.EmailAdapter;
import com.tenlionsoft.oamodule.beans.EmailSendListBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
/**
* 作者: adam
* 日期: 2022/5/11 - 10:15
* 邮箱: itgaojian@163.com
* 描述: 平板发件箱
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND_BOX)
public class SendBoxFragment extends BaseFragment {
@BindView(R2.id.et_base_search_cancel)
EditText mEtBaseSearchCancel;
@BindView(R2.id.tv_base_search_cancel)
TextView mTvBaseSearchCancel;
@BindView(R2.id.ll_base_search_cancel)
LinearLayout mLlBaseSearchCancel;
@BindView(R2.id.rlv_content)
RecyclerView mRlvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.csv_state)
CustomStateView mCsvState;
private EmailAdapter mAdapter;
private List<Object> mDatas;
private int mCurrentPage = 1;
private String mKeywords = "";
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_send_box;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
setTitleView(true);
mTvFragmentTitle.setText("发件箱");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
mSrlContent.setOnRefreshListener(v -> doRefresh());
mDatas = new ArrayList<>();
mAdapter = new EmailAdapter(mActivity, mDatas);
mRlvContent.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvContent.setAdapter(mAdapter);
mAdapter.addOnItemClickListener(rowsBean -> {
BaseFragment fragment = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND_DETAIL, "id", ((EmailSendListBean.RowsBean) rowsBean).getMailId());
mMainActivity.addFragment(3, fragment);
});
doRefresh();
mEtBaseSearchCancel.setOnEditorActionListener((v, actionId, event) -> {
LogUtils.e("搜索==" + actionId);
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
mActivity.hideSoftKeyboard();
mEtBaseSearchCancel.clearFocus();
mKeywords = v.getText().toString();
doRefresh();
return true;
} else {
return false;
}
});
mTvBaseSearchCancel.setOnClickListener(v -> {
mEtBaseSearchCancel.setText("");
mEtBaseSearchCancel.clearFocus();
mKeywords = "";
doRefresh();
});
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
/**
* 加载更多
*/
private void doLoadMore() {
getDocumentList(mCurrentPage);
}
/**
* 刷新
*/
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getDocumentList(1);
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mIsRefresh) {
doRefresh();
}
}
}
/**
* 获取文档列表
*/
private void getDocumentList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailSentBoxList(mKeywords, mCurrentPage + "")
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailSendListBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailSendListBean listBean) {
if (listBean.getRows() != null && listBean.getRows().size() > 0) {
++mCurrentPage;
if (currentPage == 1) {
mDatas.clear();
mDatas.addAll(listBean.getRows());
} else {
mDatas.addAll(listBean.getRows());
}
mCsvState.setState(CustomStateView.STATE_SUCCESS);
mAdapter.notifyDataSetChanged();
mSrlContent.finishRefresh();
if (mDatas.size() >= listBean.getTotal()) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(false);
}
} else {
mSrlContent.finishRefresh();
mSrlContent.finishLoadMore();
if (currentPage > 1) {
mSrlContent.setNoMoreData(true);
} else {
if (TextUtils.isEmpty(mKeywords)) {
//无数据
mCsvState.setState(CustomStateView.STATE_EMPTY);
} else {
mCsvState.setState(CustomStateView.STATE_EMPTY);
ToastUtils.show("未查询到相关内容");
}
}
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
mSrlContent.finishLoadMore();
mSrlContent.finishRefresh();
ExceptionHandler.handleException(e);
mCsvState.setState(CustomStateView.STATE_ERROR);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,311 @@
package com.tenlionsoft.oamodule.pad.fragments.email;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddFileBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.retrofit_net.bean.FileInfoBean;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.AddFileAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.FileUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.beans.EmailSendDetailBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import static com.tenlionsoft.baselib.core.widget.PhotoActivity.TAG_IMGURL;
/**
* 作者: adam
* 日期: 2022/5/11 - 11:21
* 邮箱: itgaojian@163.com
* 描述: 发件详情
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND_DETAIL)
public class SendDetailFragment extends BaseFragment {
@BindView(R2.id.tv_title)
TextView mTvTitle;
@BindView(R2.id.tv_receiver)
TextView mTvReceiver;
@BindView(R2.id.tv_copy)
TextView mTvCopy;
@BindView(R2.id.tv_secret)
TextView mTvSecret;
@BindView(R2.id.tv_time)
TextView mTvTime;
@BindView(R2.id.tv_content)
TextView mTvContent;
@BindView(R2.id.rlv_files)
RecyclerView mRlvFiles;
@BindView(R2.id.iv_del)
ImageView mIvDel;
@BindView(R2.id.iv_transfer)
ImageView mIvTransfer;
private String mId;
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_send_detail;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("邮件");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(3, this));
Bundle bundle = getArguments();
if (bundle != null) {
mId = bundle.getString("id");
}
if (TextUtils.isEmpty(mId)) {
ToastUtils.show("数据有误");
mMainActivity.backFragment(3, this);
} else {
getDetailById();
}
mActivity.setTouchDelegate(mIvDel, 30);
mActivity.setTouchDelegate(mIvTransfer, 30);
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void getDetailById() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getEmailSendDetail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<EmailSendDetailBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull EmailSendDetailBean emailSendDetailBean) {
setDataToView(emailSendDetailBean);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
setStateView(STATE_ERROR);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void setDataToView(EmailSendDetailBean b) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
mTvTitle.setText(b.getTitle());
mTvReceiver.setText(b.getRecipientNames());
mTvCopy.setText("抄送:" + b.getCopyForNames());
mTvSecret.setText("密送:" + b.getSecretNames());
mTvTime.setText(b.getGmtCreate() + "(发送)");
mTvContent.setText(Html.fromHtml(b.getContent()));
mIvDel.setOnClickListener(v -> onShowConfirm(1));
mIvTransfer.setOnClickListener(v -> onShowConfirm(2));
if (!TextUtils.isEmpty(b.getMailFiles())) {
doGetFileInfo(b.getMailFiles(), null);
}
}
private List<AddFileBean> mFileBeans;
private AddFileAdapter mAddFileAdapter;
private void doGetFileInfo(String fileId, List<AddFileBean> files) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(BaseApiService.class)
.getFileInfoList(fileId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<List<FileInfoBean>>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull List<FileInfoBean> fileInfoBeans) {
if (dialog.isShowing()) dialog.dismiss();
if (fileInfoBeans.size() > 0) {
mFileBeans = new ArrayList<>();
mAddFileAdapter = new AddFileAdapter(mActivity, mFileBeans);
mRlvFiles.setLayoutManager(new GridLayoutManager(mActivity, 5));
mRlvFiles.setAdapter(mAddFileAdapter);
for (int i = 0; i < fileInfoBeans.size(); i++) {
FileInfoBean infoBean = fileInfoBeans.get(i);
AddFileBean bean = new AddFileBean();
bean.setId(infoBean.getFileId());
bean.setFileName(infoBean.getFileName());
bean.setFileType(FileUtils.getFileType(infoBean.getFileName()));
bean.setPath(BaseUrlApi.BASE_FILE_URL + infoBean.getFileId());
mFileBeans.add(0, bean);
}
mAddFileAdapter.setData(mFileBeans);
mAddFileAdapter.addOnItemClickListener(addFileBean -> {
if (addFileBean.getFileType() == 1) {
//文档
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_ACTIVITY_PREVIEW_FILE)
.withString("fileName", addFileBean.getFileName())
.withString("fileId", addFileBean.getId())
.navigation();
} else if (2 == addFileBean.getFileType()) {
//图片预览
//遍历文件获取所有图片文件
ArrayList<String> imgUrls = new ArrayList<>();
for (int i = 0; i < mFileBeans.size(); i++) {
if (mFileBeans.get(i).getFileType() == 2) {
AddFileBean fileBean = mFileBeans.get(i);
String url = BaseUrlApi.BASE_IMG_URL + fileBean.getId();
imgUrls.add(url);
}
}
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList(TAG_IMGURL, imgUrls)
.navigation();
} else if (3 == addFileBean.getFileType() || 4 == addFileBean.getFileType()) {
//TODO 视频或音频预览
}
});
} else {
ToastUtils.show("未找到文档信息");
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void onShowConfirm(int type) {
new AlertDialog.Builder(mActivity)
.setTitle("提示")
.setMessage(type == 1 ? "确定要删除该邮件到回收站吗?" : "确定要转发该邮件吗?")
.setPositiveButton("确定", (dialog, which) -> {
dialog.dismiss();
if (type == 1) {
doDelEmail();
} else {
mMainActivity.backFragment(3, SendDetailFragment.this);
Map<String, Object> params = new HashMap<>();
params.put("id", mId);
params.put("type", "send");
BaseFragment fragment = FragmentUtils.getFragmentMap(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_EMAIL_SEND, params);
mMainActivity.addFragment(3, fragment);
}
})
.setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
.create()
.show();
}
private void doDelEmail() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "删除中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.doDelEmailSendBox(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BaseSuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull BaseSuccessBean baseSuccessBean) {
if (dialog.isShowing()) dialog.dismiss();
ToastUtils.show("删除成功");
BaseFragment preFragment = mMainActivity.getPreFragment();
if (preFragment != null) {
preFragment.mIsRefresh = true;
}
mMainActivity.backFragment(3, SendDetailFragment.this);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,445 @@
package com.tenlionsoft.oamodule.pad.fragments.mine;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AddFileBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.core.retrofit_net.bean.FileInfoBean;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.AddFileAdapter;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.FragmentUtils;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.FileUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.adapter.EducateAdapter;
import com.tenlionsoft.oamodule.adapter.ResumeAdapter;
import com.tenlionsoft.oamodule.beans.UserRecordDetailBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import static com.tenlionsoft.baselib.core.widget.PhotoActivity.TAG_IMGURL;
import static com.tenlionsoft.baselib.core.widget.base.BaseActivity.STATE_LOAD_LOADING;
/**
* 作者: adam
* 日期: 2022/5/11 - 14:44
* 邮箱: itgaojian@163.com
* 描述: 平板个人档案详情
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_DETAIL)
public class UserRecordDetailFragment extends BaseFragment {
@BindView(R2.id.rb_base)
RadioButton mRbBase;
@BindView(R2.id.rb_job)
RadioButton mRbJob;
@BindView(R2.id.rg_type)
RadioGroup mRgType;
@BindView(R2.id.rlv_imgs)
RecyclerView mRlvImgs;
@BindView(R2.id.tv_name)
TextView mTvName;
@BindView(R2.id.tv_gender)
TextView mTvGender;
@BindView(R2.id.tv_birthday)
TextView mTvBirthday;
@BindView(R2.id.tv_id_card)
TextView mTvIdCard;
@BindView(R2.id.tv_political)
TextView mTvPolitical;
@BindView(R2.id.tv_marital)
TextView mTvMarital;
@BindView(R2.id.tv_nationality)
TextView mTvNationality;
@BindView(R2.id.tv_native_place)
TextView mTvNativePlace;
@BindView(R2.id.tv_passport)
TextView mTvPassport;
@BindView(R2.id.tv_passport_type)
TextView mTvPassportType;
@BindView(R2.id.tv_address)
TextView mTvAddress;
@BindView(R2.id.tv_email)
TextView mTvEmail;
@BindView(R2.id.tv_phone)
TextView mTvPhone;
@BindView(R2.id.tv_school)
TextView mTvSchool;
@BindView(R2.id.tv_specialty)
TextView mTvSpecialty;
@BindView(R2.id.tv_degree)
TextView mTvDegree;
@BindView(R2.id.tv_graduate_date)
TextView mTvGraduateDate;
@BindView(R2.id.tv_link_man)
TextView mTvLinkMan;
@BindView(R2.id.et_link_phone)
TextView mEtLinkPhone;
@BindView(R2.id.ll_base)
LinearLayout mLlBase;
@BindView(R2.id.tv_obtain_date)
TextView mTvObtainDate;
@BindView(R2.id.tv_positive_date)
TextView mTvPositiveDate;
@BindView(R2.id.tv_dept)
TextView mTvDept;
@BindView(R2.id.tv_post)
TextView mTvPost;
@BindView(R2.id.tv_leader)
TextView mTvLeader;
@BindView(R2.id.tv_bank_num)
TextView mTvBankNum;
@BindView(R2.id.tv_fund_num)
TextView mTvFundNum;
@BindView(R2.id.tv_social_num)
TextView mTvSocialNum;
@BindView(R2.id.tv_job_title)
TextView mTvJobTitle;
@BindView(R2.id.tv_job_level)
TextView mTvJobLevel;
@BindView(R2.id.tv_persion_type)
TextView mTvPersionType;
@BindView(R2.id.rlv_teach)
RecyclerView mRlvTeach;
@BindView(R2.id.tv_educate_hint)
TextView mTvEducateHint;
@BindView(R2.id.rlv_resume)
RecyclerView mRlvResume;
@BindView(R2.id.tv_resume_hint)
TextView mTvResumeHint;
@BindView(R2.id.rlv_resume_file)
RecyclerView mRlvResumeFile;
@BindView(R2.id.ll_job)
LinearLayout mLlJob;
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_user_record_detail;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("个人档案");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(4, this));
mRgType.setOnCheckedChangeListener((v, id) -> {
if (id == R.id.rb_base) {
mLlBase.setVisibility(View.VISIBLE);
mLlJob.setVisibility(View.GONE);
} else if (id == R.id.rb_job) {
mLlBase.setVisibility(View.GONE);
mLlJob.setVisibility(View.VISIBLE);
}
});
getDetailData();
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void getDetailData() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getUserRecordDetailById()
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<UserRecordDetailBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull UserRecordDetailBean userRecordDetailBean) {
if (!TextUtils.isEmpty(userRecordDetailBean.getUserArchivesId())) {
setDataToView(userRecordDetailBean);
} else {
setStateView(STATE_EMPTY);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
setStateView(STATE_ERROR);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
/**
* 回显数据
*/
private void setDataToView(UserRecordDetailBean b) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
mTvFragmentOption.setText("编辑");
mTvFragmentOption.setOnClickListener(v -> {
BaseFragment fragment = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_USER_RECORD_EDIT, "id", b.getUserArchivesId());
mMainActivity.addFragment(4, fragment);
});
mTvName.setText(b.getName());
mTvGender.setText(b.getSexName());
mTvBirthday.setText(b.getBirthday());
mTvIdCard.setText(b.getIdCard());
mTvPolitical.setText(b.getPoliticalOutlookName());
mTvMarital.setText(b.getMaritalStatusName());
mTvNationality.setText(b.getNationality());
mTvNativePlace.setText(b.getNativeAddress());
mTvPassport.setText(b.getResidence());
mTvPassportType.setText(b.getResidenceNatureName());
mTvAddress.setText(b.getAddress());
mTvEmail.setText(b.getEmail());
mTvPhone.setText(b.getPhone());
mTvSchool.setText(b.getGraduation());
mTvSpecialty.setText(b.getMajorName());
mTvDegree.setText(b.getHighestDegree());
mTvGraduateDate.setText(b.getGraduationDate());
mTvLinkMan.setText(b.getEmergencyContact());
mEtLinkPhone.setText(b.getEmergencyContactPhone());
mTvObtainDate.setText(b.getJoinTime());
mTvPositiveDate.setText(b.getCeremonialTime());
mTvDept.setText(b.getDeptName());
mTvPost.setText(b.getPostName());
mTvLeader.setText(b.getDirectSuperiorName());
mTvBankNum.setText(b.getBankAccount());
mTvFundNum.setText(b.getFundAccount());
mTvSocialNum.setText(b.getSecurityAccount());
mTvJobTitle.setText(b.getTitleName());
mTvJobLevel.setText(b.getTitleGradeName());
mTvPersionType.setText(b.getUserTypeName());
if (b.getEducationList() != null && b.getEducationList().size() > 0) {
EducateAdapter adapter = new EducateAdapter(mActivity, b.getEducationList(), 1);
mRlvTeach.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvTeach.setAdapter(adapter);
mRlvTeach.setVisibility(View.VISIBLE);
mRlvTeach.addItemDecoration(new ItemSplitDivider(mActivity, LinearLayoutManager.VERTICAL, 1, Color.parseColor("#BFBFBF")));
mTvEducateHint.setVisibility(View.GONE);
} else {
mRlvTeach.setVisibility(View.GONE);
mTvEducateHint.setVisibility(View.VISIBLE);
}
if (b.getWorkList() != null && b.getWorkList().size() > 0) {
ResumeAdapter adapter = new ResumeAdapter(mActivity, b.getWorkList(), 1);
mRlvResume.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvResume.setAdapter(adapter);
mRlvResume.addItemDecoration(new ItemSplitDivider(mActivity, LinearLayoutManager.VERTICAL, 1, Color.parseColor("#BFBFBF")));
mRlvResume.setVisibility(View.VISIBLE);
mTvResumeHint.setVisibility(View.GONE);
} else {
mRlvResume.setVisibility(View.GONE);
mTvResumeHint.setVisibility(View.VISIBLE);
}
//证件照
if (!TextUtils.isEmpty(b.getPhoto())) {
mRlvImgs.setVisibility(View.VISIBLE);
List<AddFileBean> files = new ArrayList<>();
String[] split = b.getPhoto().split(",");
for (int i = 0; i < split.length; i++) {
AddFileBean bean = new AddFileBean();
bean.setId(split[i]);
bean.setPath(BaseUrlApi.BASE_IMG_URL + split[i]);
files.add(bean);
}
doGetFileInfos(b.getPhoto(), files, 2);
} else {
mRlvImgs.setVisibility(View.GONE);
}
//简历附件
if (!TextUtils.isEmpty(b.getResume())) {
mRlvResumeFile.setVisibility(View.VISIBLE);
List<AddFileBean> files = new ArrayList<>();
String[] split = b.getResume().split(",");
for (int i = 0; i < split.length; i++) {
AddFileBean bean = new AddFileBean();
bean.setId(split[i]);
bean.setPath(BaseUrlApi.BASE_IMG_URL + split[i]);
files.add(bean);
}
doGetFileInfos(b.getResume(), files, 1);
} else {
mRlvResumeFile.setVisibility(View.GONE);
}
}
private void doGetFileInfos(String fileId, List<AddFileBean> files, int type) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(BaseApiService.class)
.getFileInfoList(fileId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<List<FileInfoBean>>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull List<FileInfoBean> fileInfoBeans) {
if (dialog.isShowing()) dialog.dismiss();
if (fileInfoBeans.size() > 0) {
for (int i = 0; i < files.size(); i++) {
for (int j = 0; j < fileInfoBeans.size(); j++) {
if (files.get(i).getId().equals(fileInfoBeans.get(j).getFileId())) {
files.get(i).setFileName(fileInfoBeans.get(j).getFileName());
files.get(i).setFileType(FileUtils.getFileType(fileInfoBeans.get(j).getFileName()));
}
}
}
if (type == 2) {
AddFileAdapter adapter = new AddFileAdapter(mActivity, files);
mRlvImgs.setLayoutManager(new GridLayoutManager(mActivity, 5));
mRlvImgs.setAdapter(adapter);
adapter.addOnItemClickListener(addFileBean -> {
if (addFileBean.getFileType() == 1) {
//文档
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_ACTIVITY_PREVIEW_FILE)
.withString("fileName", addFileBean.getFileName())
.withString("fileId", addFileBean.getId())
.navigation();
} else if (2 == addFileBean.getFileType()) {
//图片预览
//遍历文件获取所有图片文件
ArrayList<String> imgUrls = new ArrayList<>();
for (int i = 0; i < files.size(); i++) {
AddFileBean fileBean = files.get(i);
String url = BaseUrlApi.BASE_IMG_URL + fileBean.getId();
imgUrls.add(url);
}
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList(TAG_IMGURL, imgUrls)
.navigation();
} else if (3 == addFileBean.getFileType() || 4 == addFileBean.getFileType()) {
//TODO 视频或音频预览
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
.withString("title", addFileBean.getFileName().substring(0, addFileBean.getFileName().lastIndexOf(".")))
.withString("url", BaseUrlApi.BASE_IMG_URL + addFileBean.getId())
.navigation();
}
});
} else {
AddFileAdapter adapter = new AddFileAdapter(mActivity, files);
mRlvResumeFile.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvResumeFile.setAdapter(adapter);
adapter.addOnItemClickListener(addFileBean -> {
if (addFileBean.getFileType() == 1) {
//文档
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_ACTIVITY_PREVIEW_FILE)
.withString("fileName", addFileBean.getFileName())
.withString("fileId", addFileBean.getId())
.navigation();
} else if (2 == addFileBean.getFileType()) {
//图片预览
//遍历文件获取所有图片文件
ArrayList<String> imgUrls = new ArrayList<>();
for (int i = 0; i < files.size(); i++) {
AddFileBean fileBean = files.get(i);
String url = BaseUrlApi.BASE_IMG_URL + fileBean.getId();
imgUrls.add(url);
}
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList(TAG_IMGURL, imgUrls)
.navigation();
} else if (3 == addFileBean.getFileType() || 4 == addFileBean.getFileType()) {
//TODO 视频或音频预览
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
.withString("title", addFileBean.getFileName().substring(0, addFileBean.getFileName().lastIndexOf(".")))
.withString("url", BaseUrlApi.BASE_IMG_URL + addFileBean.getId())
.navigation();
}
});
}
} else {
ToastUtils.show("未找到文档信息");
}
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
if (mIsRefresh) {
setStateView(STATE_LOAD_LOADING);
getDetailData();
}
}
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -17,8 +17,8 @@
<ImageView
android:id="@+id/iv_user_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginTop="50dp"
tools:src="@drawable/ic_user_default" />

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:paddingTop="5dp"
tools:context=".activity.meeting.MineMeetingListActivity">
<include layout="@layout/layout_base_search_cancel" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@color/white">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
tools:itemCount="5"
tools:listitem="@layout/item_email" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<com.tenlionsoft.baselib.core.widget.views.CustomStateView
android:id="@+id/csv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
</LinearLayout>

View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
tools:context=".activity.email.InboxDetailActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="75dp"
android:background="@color/white"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textStyle="bold"
tools:text="主题" />
<TextView
android:id="@+id/tv_receiver"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/text_green"
tools:text="收件人" />
<TextView
android:id="@+id/tv_copy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="抄送" />
<TextView
android:id="@+id/tv_secret"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="密送" />
<TextView
android:id="@+id/tv_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="发送时间" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textColor="@color/black" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_files"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:orientation="horizontal"
android:padding="20dp">
<ImageView
android:id="@+id/iv_del"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitXY"
android:src="@drawable/ic_del_tong" />
<ImageView
android:id="@+id/iv_transfer"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:src="@drawable/ic_share" />
</LinearLayout>
</RelativeLayout>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:padding="10dp">
<include layout="@layout/layout_base_search_cancel" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:listitem="@layout/item_email" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<com.tenlionsoft.baselib.core.widget.views.CustomStateView
android:id="@+id/csv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
</LinearLayout>

View File

@ -0,0 +1,232 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:paddingTop="5dp"
android:paddingBottom="10dp">
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="主题"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入邮件主题"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_ver">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="收件人"
android:textColor="@color/black"
android:textSize="14sp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shp_rectangle_gray">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_receiver"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_default="wrap"
app:layout_constraintHeight_max="200dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:itemCount="5"
tools:layoutManager="GridLayoutManager"
tools:listitem="@layout/item_person_base_show"
tools:spanCount="5" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<LinearLayout style="@style/item_ver">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="抄送人"
android:textColor="@color/black"
android:textSize="14sp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shp_rectangle_gray">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_copy_to"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_default="wrap"
app:layout_constraintHeight_max="200dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:itemCount="5"
tools:layoutManager="GridLayoutManager"
tools:listitem="@layout/item_person_base_show"
tools:spanCount="5" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<LinearLayout style="@style/item_ver">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="密送人"
android:textColor="@color/black"
android:textSize="14sp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shp_rectangle_gray">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_secret"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_default="wrap"
app:layout_constraintHeight_max="200dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:itemCount="5"
tools:layoutManager="GridLayoutManager"
tools:listitem="@layout/item_person_base_show"
tools:spanCount="5" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<EditText
android:id="@+id/et_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:gravity="top|left"
android:hint="请输入邮件内容"
android:minLines="10"
android:padding="15dp"
android:scrollbars="vertical"
android:textColor="@color/black"
android:textSize="@dimen/text_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_default="percent"
app:layout_constraintHeight_percent="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="1" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_files"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:itemCount="3" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="20dp">
<ImageView
android:id="@+id/iv_add_img"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitXY"
android:src="@drawable/ic_img_add" />
<ImageView
android:id="@+id/iv_add_file"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:scaleType="fitXY"
android:src="@drawable/ic_accessory_add" />
<ImageView
android:id="@+id/iv_draft"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:scaleType="fitXY"
android:src="@drawable/ic_save_draft" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
tools:context=".activity.email.InboxDetailActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="75dp"
android:background="@color/white"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textStyle="bold"
tools:text="主题" />
<TextView
android:id="@+id/tv_sender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/text_green"
tools:text="发件人" />
<TextView
android:id="@+id/tv_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="收件时间" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:textColor="@color/black" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_files"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:orientation="horizontal"
android:padding="20dp">
<ImageView
android:id="@+id/iv_del"
android:layout_width="20dp"
android:layout_height="20dp"
android:scaleType="fitXY"
android:src="@drawable/ic_del_tong" />
<ImageView
android:id="@+id/iv_transfer"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginLeft="20dp"
android:src="@drawable/ic_share" />
</LinearLayout>
</RelativeLayout>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:padding="10dp">
<include layout="@layout/layout_base_search_cancel" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:background="@color/white">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:itemCount="5"
tools:listitem="@layout/item_email" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<com.tenlionsoft.baselib.core.widget.views.CustomStateView
android:id="@+id/csv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
</LinearLayout>

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
tools:context=".activity.email.InboxDetailActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="80dp"
android:background="@color/white"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textStyle="bold"
tools:text="主题" />
<TextView
android:id="@+id/tv_sender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/text_green"
tools:text="发件人" />
<TextView
android:id="@+id/tv_receiver"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/text_blue"
tools:text="收件人" />
<TextView
android:id="@+id/tv_copy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="抄送" />
<TextView
android:id="@+id/tv_secret"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="密送" />
<TextView
android:id="@+id/tv_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="发送时间" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:hint="未录入"
android:textColor="@color/black" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_files"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:orientation="horizontal"
android:padding="20dp">
<ImageView
android:id="@+id/iv_del"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitXY"
android:src="@drawable/ic_del_tong" />
<ImageView
android:id="@+id/iv_transfer"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:src="@drawable/ic_share" />
</LinearLayout>
</RelativeLayout>

View File

@ -12,6 +12,7 @@
android:id="@+id/rl_content_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginBottom="5dp"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal"
@ -193,6 +194,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:padding="5dp"
tools:listitem="@layout/item_routine" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:padding="10dp"
tools:context=".activity.meeting.MineMeetingListActivity">
<include layout="@layout/layout_base_search_cancel" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:listitem="@layout/item_email" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<com.tenlionsoft.baselib.core.widget.views.CustomStateView
android:id="@+id/csv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
</LinearLayout>

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
tools:context=".activity.email.InboxDetailActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="80dp"
android:background="@color/white"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textStyle="bold"
tools:text="主题" />
<TextView
android:id="@+id/tv_receiver"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/text_green"
tools:text="收件人" />
<TextView
android:id="@+id/tv_copy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="抄送" />
<TextView
android:id="@+id/tv_secret"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="密送" />
<TextView
android:id="@+id/tv_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
tools:text="发送时间" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="1"
android:textColor="@color/black" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_files"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:orientation="horizontal"
android:padding="20dp">
<ImageView
android:id="@+id/iv_del"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="fitXY"
android:src="@drawable/ic_del_tong" />
<ImageView
android:id="@+id/iv_transfer"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="20dp"
android:src="@drawable/ic_share" />
</LinearLayout>
</RelativeLayout>

View File

@ -0,0 +1,900 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:padding="10dp">
<RadioGroup
android:id="@+id/rg_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_base"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_custom_w_g"
android:button="@null"
android:checked="true"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="基础信息"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<RadioButton
android:id="@+id/rb_job"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_custom_w_g"
android:button="@null"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="入职信息"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
</RadioGroup>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:padding="5dp"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:visibility="gone">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_imgs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="姓名"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入姓名"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="性别"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择性别"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="出生日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_birthday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择出生日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="身份证号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_id_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_id_card"
android:gravity="right"
android:hint="请输入身份证号码"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="政治面貌"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_political"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择政治面貌"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="婚姻状况"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_marital"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择婚姻状况"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="国籍"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_nationality"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入国籍"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="籍贯"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_native_place"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入籍贯"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="户口"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_passport"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入户口"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="户口性质"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_passport_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择户口性质"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="家庭地址"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入家庭地址"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="电子邮箱"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入电子邮箱"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="联系电话"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_phone"
android:gravity="right"
android:hint="请输入联系电话"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="毕业院校"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_school"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入毕业院校"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="专业"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_specialty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择专业"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="最高学位"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_degree"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入最高学位"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="毕业日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_graduate_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择毕业日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="紧急联系人"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_link_man"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入紧急联系人"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="联系人电话"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_link_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_phone"
android:gravity="right"
android:hint="请输入紧急联系人联系电话"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<!--入职信息-->
<LinearLayout
android:id="@+id/ll_job"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
tools:visibility="visible">
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="入职日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_obtain_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择入职日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="转正日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_positive_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择转正日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="所在部门"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_dept"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择所在部门"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="岗位"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_post"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择岗位"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="直接上级"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_leader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择直接上级"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="银行账号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_bank_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入银行账号"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="公积金号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_fund_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入公积金号"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="社保卡号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_social_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入社保卡号"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="职称"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_job_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择职称"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="职称职等"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_job_level"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择职称职等"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="人员分类"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_persion_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择人员分类"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<!--教育信息-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="5dp"
android:text="教育经历"
android:textColor="@color/black"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<Button
android:id="@+id/btn_add_educate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="3dp"
android:text="添加教育经历"
android:textColor="@color/white" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_educate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/tv_educate_int"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入教育经历" />
</RelativeLayout>
</LinearLayout>
<!--工作经历-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="5dp"
android:text="工作简历"
android:textColor="@color/black"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<Button
android:id="@+id/btn_add_resume"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="3dp"
android:text="添加工作简历"
android:textColor="@color/white" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_resume"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/tv_resume_int"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入工作简历" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_resume_file"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View File

@ -0,0 +1,839 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:padding="10dp"
tools:context=".activity.record.UserRecordAddActivity">
<RadioGroup
android:id="@+id/rg_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_base"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_custom_w_g"
android:button="@null"
android:checked="true"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="基础信息"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<RadioButton
android:id="@+id/rb_job"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_custom_w_g"
android:button="@null"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="入职信息"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
</RadioGroup>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:padding="5dp"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:visibility="gone">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_imgs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="姓名"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="性别"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="出生日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_birthday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="身份证号"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_id_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_id_card"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="政治面貌"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_political"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="婚姻状况"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_marital"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="国籍"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_nationality"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="籍贯"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_native_place"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="户口"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_passport"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="户口性质"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_passport_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="家庭地址"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="电子邮箱"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="联系电话"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_phone"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="毕业院校"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_school"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="专业"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_specialty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="最高学位"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_degree"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="毕业日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_graduate_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="紧急联系人"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_link_man"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="联系人电话"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/et_link_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_job"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
tools:visibility="visible">
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="入职日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_obtain_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="转正日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_positive_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="所在部门"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_dept"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="岗位"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_post"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="直接上级"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_leader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="银行账号"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_bank_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="公积金号"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_fund_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="社保卡号"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_social_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="职称"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_job_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="职称职等"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_job_level"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="人员分类"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_persion_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:hint="未录入"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="教育经历"
android:textColor="@color/black"
android:textSize="@dimen/text_16" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_teach"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_educate_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入教育经历" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="工作简历"
android:textColor="@color/black"
android:textSize="@dimen/text_16" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_resume"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv_resume_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入工作简历" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_resume_file"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="-10dp"
android:layout_marginRight="10dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View File

@ -0,0 +1,900 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical"
android:padding="10dp">
<RadioGroup
android:id="@+id/rg_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_base"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_custom_w_g"
android:button="@null"
android:checked="true"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="基础信息"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<RadioButton
android:id="@+id/rb_job"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/switch_custom_w_g"
android:button="@null"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:text="入职信息"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
</RadioGroup>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:padding="5dp"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:visibility="gone">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_imgs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="姓名"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入姓名"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="性别"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择性别"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="出生日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_birthday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择出生日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="身份证号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_id_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_id_card"
android:gravity="right"
android:hint="请输入身份证号码"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="政治面貌"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_political"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择政治面貌"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="婚姻状况"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_marital"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择婚姻状况"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="国籍"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_nationality"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入国籍"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="籍贯"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_native_place"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入籍贯"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="户口"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_passport"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入户口"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="户口性质"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_passport_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择户口性质"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="家庭地址"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入家庭地址"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="电子邮箱"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入电子邮箱"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="联系电话"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_phone"
android:gravity="right"
android:hint="请输入联系电话"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="毕业院校"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_school"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入毕业院校"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="专业"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_specialty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择专业"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="最高学位"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_degree"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入最高学位"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="毕业日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_graduate_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择毕业日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="紧急联系人"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_link_man"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入紧急联系人"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="联系人电话"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_link_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:digits="@string/limit_phone"
android:gravity="right"
android:hint="请输入紧急联系人联系电话"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<!--入职信息-->
<LinearLayout
android:id="@+id/ll_job"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
tools:visibility="visible">
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="入职日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_obtain_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择入职日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="转正日期"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_positive_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择转正日期"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="所在部门"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_dept"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择所在部门"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="岗位"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_post"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择岗位"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="直接上级"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_leader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择直接上级"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="银行账号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_bank_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入银行账号"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="公积金号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_fund_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入公积金号"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="社保卡号"
android:textColor="@color/black"
android:textSize="14sp" />
<EditText
android:id="@+id/et_social_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="right"
android:hint="请输入社保卡号"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="职称"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_job_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择职称"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="职称职等"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_job_level"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择职称职等"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout style="@style/item_hor_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="人员分类"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_persion_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_right"
android:focusable="true"
android:gravity="right"
android:hint="请选择人员分类"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
<!--教育信息-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="5dp"
android:text="教育经历"
android:textColor="@color/black"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<Button
android:id="@+id/btn_add_educate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="3dp"
android:text="添加教育经历"
android:textColor="@color/white" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_educate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/tv_educate_int"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入教育经历" />
</RelativeLayout>
</LinearLayout>
<!--工作经历-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingRight="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="5dp"
android:text="工作简历"
android:textColor="@color/black"
android:textSize="@dimen/text_16"
android:textStyle="bold" />
<Button
android:id="@+id/btn_add_resume"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/sel_btn_submit"
android:minWidth="0dp"
android:minHeight="0dp"
android:padding="3dp"
android:text="添加工作简历"
android:textColor="@color/white" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_resume"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/tv_resume_int"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="20dp"
android:text="未录入工作简历" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_resume_file"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>