平板督办事项

This commit is contained in:
adam 2022-05-09 17:18:30 +08:00
parent c2ba7d919b
commit 693590fcab
11 changed files with 2264 additions and 6 deletions

View File

@ -222,4 +222,8 @@ public class PathConfig {
public static final String PATH_MODULE_PAD_OA_FRAGMENT_MEETING_EDIT = "/oamodule/fragment/meetingEdit";//发起会议
public static final String PATH_MODULE_PAD_OA_FRAGMENT_MEETING_DETAIL = "/oamodule/fragment/meetingDetail";//发起会议
public static final String PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE = "/oamodule/fragment/supervise";//督办事项
public static final String PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_ADD = "/oamodule/fragment/superviseAdd";//发起督办事项
public static final String PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_DETAIL = "/oamodule/fragment/superviseDetail";//督办详情
public static final String PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_TRANSACT = "/oamodule/fragment/superviseTransact";//督办回复
}

View File

@ -319,7 +319,7 @@ public class PadMainActivity extends BaseActivity {
* 切换fragment
*/
private void switchFragment(BaseFragment fragment, String tag) {
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
if (mCurrentFragment != null) {
fragmentTransaction.hide(mCurrentFragment)
.setCustomAnimations(R.anim.anim_fade_in, R.anim.anim_fade_out);
@ -419,7 +419,7 @@ public class PadMainActivity extends BaseActivity {
List<BaseFragment> list = mFragments.get(mCurrentItem);
list.remove(fragment);
getSupportFragmentManager().beginTransaction()
.hide(fragment)
.remove(fragment)
.show(list.get(list.size() - 1))
.commit();
}

View File

@ -330,7 +330,6 @@ public class ScheduleFragment extends BaseFragment implements
@Override
public void onCalendarSelect(Calendar calendar, boolean isClick) {
LogUtils.e("日历选择");
mCurrentDay = calendar.getDay();
mCurrentYear = calendar.getYear();
mCurrentMonth = calendar.getMonth();
@ -359,7 +358,6 @@ public class ScheduleFragment extends BaseFragment implements
@Override
public void onMonthChange(int year, int month) {
LogUtils.e("月份切换");
mCurrentYear = year;
mCurrentMonth = month;
mTvYear.setText(mCurrentYear + "");
@ -369,14 +367,12 @@ public class ScheduleFragment extends BaseFragment implements
@Override
public void onYearChange(int year) {
LogUtils.e("年份切换");
mCurrentYear = year;
mTvYear.setText(year + "");
}
@Override
public void onViewChange(boolean isMonthView) {
LogUtils.e("视图切换");
if (isMonthView) {
mCalendarView.setBackgroundColor(Color.WHITE);
} else {

View File

@ -0,0 +1,337 @@
package com.tenlionsoft.oamodule.pad.fragments.home.supervise;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bigkoo.pickerview.view.TimePickerView;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
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.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.TimeUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.activity.car.ChooseUserActivity;
import com.tenlionsoft.oamodule.activity.supervise.SelRelevanceOptionActivity;
import com.tenlionsoft.oamodule.beans.SaveSuperviseBean;
import com.tenlionsoft.oamodule.beans.SuperviseRelevanceOptionsListBean;
import com.tenlionsoft.oamodule.beans.SuperviseTypeBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 作者: adam
* 日期: 2022/5/9 - 15:58
* 邮箱: itgaojian@163.com
* 描述: 发起督办
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_ADD)
public class SuperviseAddFragment extends BaseFragment {
@BindView(R2.id.et_name)
EditText mEtName;
@BindView(R2.id.tv_type)
TextView mTvType;
@BindView(R2.id.tv_end_time)
TextView mTvEndTime;
@BindView(R2.id.tv_relevance)
TextView mTvRelevance;
@BindView(R2.id.tv_users)
TextView mTvUsers;
@BindView(R2.id.et_request)
EditText mEtRequest;
@BindView(R2.id.tv_request_num)
TextView mTvRequestNum;
@BindView(R2.id.cb_notice_msg)
CheckBox mCbNoticeMsg;
@BindView(R2.id.cb_notice_email)
CheckBox mCbNoticeEmail;
@BindView(R2.id.btn_confirm)
Button mBtnConfirm;
private OptionsPickerView<SuperviseTypeBean> mTypePicker;
private List<SuperviseTypeBean> mTypes;
private SuperviseTypeBean mSelType;
private String mIds;
private String mUserNames;
private SuperviseRelevanceOptionsListBean.RowsBean mSelRelevance;
private PadMainActivity mMainActivity;
private ActivityResultLauncher<Intent> mOptionsLauncher;
private ActivityResultLauncher<Intent> mPersonLauncher;
@Override
protected int getContentViewId() {
return R.layout.fragment_supervise_add;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
setTitleView(true);
mTvFragmentTitle.setText("发起督办");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(1, this));
initViews();
}
/**
* 初始化页面
*/
private void initViews() {
mTvType.setOnClickListener(v -> onShowType());
mTvEndTime.setOnClickListener(v -> onShowDate());
mTvRelevance.setOnClickListener(v -> {
if (mSelType == null) {
ToastUtils.show("请先选择督办类型");
} else {
Intent intent = new Intent(mActivity, SelRelevanceOptionActivity.class);
intent.putExtra("isSingle", true);
intent.putExtra("id", mSelType.getTypeCode());
mOptionsLauncher.launch(intent);
}
});
mTvUsers.setOnClickListener(v -> {
Intent intent = new Intent(mActivity, ChooseUserActivity.class);
intent.putExtra("isSingle", false);
mPersonLauncher.launch(intent);
});
mBtnConfirm.setOnClickListener(v -> doConfirm());
}
@Override
public void onAttach(@androidx.annotation.NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
mOptionsLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
Intent data = result.getData();
if (data == null) return;
//关联事项
mSelRelevance = (SuperviseRelevanceOptionsListBean.RowsBean) data.getSerializableExtra("bean");
mTvRelevance.setText(mSelRelevance.getDataTitle());
});//关联事项
mPersonLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
Intent data = result.getData();
if (data == null) return;
//督办人员
mIds = data.getStringExtra("id");
mUserNames = data.getStringExtra("name");
mTvUsers.setText(mUserNames);
});//督办人员
}
/**
* 督办类型
*/
private void onShowType() {
mActivity.hideSoftKeyboard();
if (mTypes != null && mTypes.size() > 0) {
if (mTypePicker == null) {
mTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> {
mSelType = mTypes.get(o1);
mTvType.setText(mSelType.getTypeName());
})
.setTitleText("请选择")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mTypePicker.setPicker(mTypes);
}
mTypePicker.show();
} else {
getSuperviseTypeList();
}
}
private void getSuperviseTypeList() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中...");
dialog.show();
RetrofitManager.getInstance()
.create(OAApi.class)
.getSuperviseTypeList()
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<List<SuperviseTypeBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull List<SuperviseTypeBean> superviseTypeBeans) {
if (dialog.isShowing()) dialog.dismiss();
if (superviseTypeBeans.size() > 0) {
mTypes = superviseTypeBeans;
onShowType();
} else {
ToastUtils.show("暂无数据");
}
}
@Override
public void onError(@NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void onShowDate() {
TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> {
//判断时间大小
mTvEndTime.setText(TimeUtils.date2String(date));
})
.setTitleText("请选时间")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.isDialog(false)
.setType(new boolean[]{true, true, true, true, true, true})
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mTimePickerView.show();
}
private void doConfirm() {
if (checkParams()) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "提交中...");
dialog.show();
RequestBody body = buildParams();
RetrofitManager.getInstance()
.create(OAApi.class)
.doSaveSupervise(body)
.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("保存成功");
BaseFragment preFragment = mMainActivity.getPreFragment();
if (null != preFragment) {
preFragment.mIsRefresh = true;
}
mMainActivity.backFragment(1, SuperviseAddFragment.this);
}
@Override
public void onError(@NonNull Throwable e) {
if (dialog.isShowing()) dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
private boolean checkParams() {
String name = mEtName.getText().toString().trim();
if (TextUtils.isEmpty(name)) {
ToastUtils.show("请输入督办名称");
return false;
}
String endTime = mTvEndTime.getText().toString().trim();
if (TextUtils.isEmpty(endTime)) {
ToastUtils.show("请选择完成时限");
return false;
}
if (TextUtils.isEmpty(mIds)) {
ToastUtils.show("请选择督办人员");
return false;
}
String request = mEtRequest.getText().toString().trim();
if (TextUtils.isEmpty(request)) {
ToastUtils.show("请输入督办内容");
return false;
}
return true;
}
private RequestBody buildParams() {
SaveSuperviseBean bean = new SaveSuperviseBean();
String name = mEtName.getText().toString().trim();
bean.setOverseeTitle(name);
if (mSelType != null) {
bean.setOverseeType(mSelType.getOverseeTypeId());
}
String endTime = mTvEndTime.getText().toString().trim();
bean.setOverseeCompleteTime(endTime);
if (mSelRelevance != null) {
bean.setOverseeItemId(mSelRelevance.getDataId());
bean.setOverseeItemName(mSelRelevance.getDataTitle());
}
bean.setOverseeUserIds(mIds.replace(",", "_"));
bean.setOverseeUserNames(mUserNames);
String reqeust = mEtRequest.getText().toString().trim();
bean.setOverseeContent(reqeust);
StringBuilder notice = new StringBuilder();
if (mCbNoticeMsg.isChecked()) {
notice.append("1").append(",");
}
if (mCbNoticeEmail.isChecked()) {
notice.append("2");
}
if (!TextUtils.isEmpty(notice.toString().trim())) {
bean.setOverseeNoticeType(notice.toString().trim());
}
return RequestBody.create(new Gson().toJson(bean), MediaType.parse("application/json; charset=utf-8"));
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,192 @@
package com.tenlionsoft.oamodule.pad.fragments.home.supervise;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
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.utils.ExceptionHandler;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.beans.SuperviseBean;
import com.tenlionsoft.oamodule.beans.SuperviseRepectBean;
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;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
/**
* 作者: adam
* 日期: 2022/5/9 - 16:27
* 邮箱: itgaojian@163.com
* 描述: 督办详情
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_DETAIL)
public class SuperviseDetailFragment extends BaseFragment {
@BindView(R2.id.tv_name)
TextView mTvName;
@BindView(R2.id.tv_type)
TextView mTvType;
@BindView(R2.id.tv_end_time)
TextView mTvEndTime;
@BindView(R2.id.tv_relevance)
TextView mTvRelevance;
@BindView(R2.id.tv_users)
TextView mTvUsers;
@BindView(R2.id.tv_request)
TextView mTvRequest;
@BindView(R2.id.cb_notice_msg)
CheckBox mCbNoticeMsg;
@BindView(R2.id.cb_notice_email)
CheckBox mCbNoticeEmail;
@BindView(R2.id.tv_repect_content)
TextView mTvRepectContent;
@BindView(R2.id.ll_repect)
LinearLayout mLlRepect;
private String mId;
private String mUserId;
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_supervise_detail;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("督办详情");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(1, this));
Bundle bundle = getArguments();
if (bundle != null) {
mId = bundle.getString("id");
mUserId = bundle.getString("userId");
}
if (!TextUtils.isEmpty(mUserId)) {
getDetailByUserId();
} else {
getDetailById();
}
}
@Override
public void onAttach(@androidx.annotation.NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void getDetailById() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getSuperviseDetail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<SuperviseBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuperviseBean superviseBean) {
setDataToView(superviseBean);
}
@Override
public void onError(@NonNull Throwable e) {
setStateView(STATE_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void getDetailByUserId() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getSuperviseRepectDetail(mUserId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<SuperviseRepectBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuperviseRepectBean superviseBean) {
setRepectDataToView(superviseBean);
}
@Override
public void onError(@NonNull Throwable e) {
setStateView(STATE_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void setRepectDataToView(SuperviseRepectBean bean) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
mTvName.setText(bean.getOverseeDTO().getOverseeTitle());
mTvType.setText(bean.getOverseeDTO().getOverseeTypeName());
mTvEndTime.setText(bean.getOverseeDTO().getOverseeCompleteTime());
mTvRelevance.setText(bean.getOverseeDTO().getOverseeItemName());
mTvUsers.setText(bean.getOverseeDTO().getOverseeUserNames());
mTvRequest.setText(bean.getOverseeDTO().getOverseeContent());
mCbNoticeMsg.setChecked(bean.getOverseeDTO().getOverseeNoticeType().contains("1"));
mCbNoticeEmail.setChecked(bean.getOverseeDTO().getOverseeNoticeType().contains("2"));
mLlRepect.setVisibility(View.VISIBLE);
mTvRepectContent.setText(bean.getContent());
}
private void setDataToView(SuperviseBean bean) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
mTvName.setText(bean.getOverseeTitle());
mTvType.setText(bean.getOverseeTypeName());
mTvEndTime.setText(bean.getOverseeCompleteTime());
mTvRelevance.setText(bean.getOverseeItemName());
mTvUsers.setText(bean.getOverseeUserNames());
mTvRequest.setText(bean.getOverseeContent());
mCbNoticeMsg.setChecked(bean.getOverseeNoticeType().contains("1"));
mCbNoticeEmail.setChecked(bean.getOverseeNoticeType().contains("2"));
mLlRepect.setVisibility(View.GONE);
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,423 @@
package com.tenlionsoft.oamodule.pad.fragments.home.supervise;
import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
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.baselib.utils.TimeUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
import com.tenlionsoft.oamodule.adapter.SuperviseAdapter;
import com.tenlionsoft.oamodule.beans.BySuperviseListBean;
import com.tenlionsoft.oamodule.beans.SuperviseBean;
import com.tenlionsoft.oamodule.beans.SuperviseListBean;
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/9 - 15:38
* 邮箱: itgaojian@163.com
* 描述: 督办事项
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE)
public class SuperviseFragment extends BaseFragment {
@BindView(R2.id.iv_back)
ImageView mIvBack;
@BindView(R2.id.rb_apply)
RadioButton mRbApply;
@BindView(R2.id.rb_mine)
RadioButton mRbMine;
@BindView(R2.id.rg_type)
RadioGroup mRgType;
@BindView(R2.id.iv_control)
TextView mIvControl;
@BindView(R2.id.rl_content_title)
RelativeLayout mRlContentTitle;
@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.tv_start_date)
TextView mTvStartDate;
@BindView(R2.id.tv_end_date)
TextView mTvEndDate;
@BindView(R2.id.rlv_content)
RecyclerView mRlvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.csv_state)
CustomStateView mCsvState;
private List<Object> mDatas;
private int mType = 1;//1我发起的督办 2被督办
private SuperviseAdapter mAdapter;
private int mCurrentPage = 1;
private String mKeywords = "";
private PadMainActivity mMainActivity;
@Override
protected int getContentViewId() {
return R.layout.fragment_supervise;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setStateView(STATE_SUCCESS);
mSrlView.setEnableRefresh(false);
mSrlView.setEnableLoadMore(false);
mIvControl.setOnClickListener(v -> {
BaseFragment fragment = FragmentUtils.getFragment(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_ADD);
mMainActivity.addFragment(1, fragment);
});
mCsvState.setState(CustomStateView.STATE_LOAD);
initViews();
}
/**
* 初始化页面
*/
private void initViews() {
mIvBack.setOnClickListener(v -> mMainActivity.backFragment(1, this));
mTvStartDate.setOnClickListener(v -> onShowDate(1));
mTvEndDate.setOnClickListener(v -> onShowDate(2));
mDatas = new ArrayList<>();
mAdapter = new SuperviseAdapter(mActivity, mDatas);
mRlvContent.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvContent.setAdapter(mAdapter);
mRgType.setOnCheckedChangeListener((group, checkedId) -> {
if (checkedId == R.id.rb_apply) {
//我发起的
mType = 1;
} else if (checkedId == R.id.rb_mine) {
//我接受的
mType = 2;
}
//重置搜索条件
resetCondition();
});
mSrlContent.setOnRefreshListener(v -> doRefresh());
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
mAdapter.addOnItemClickListener(o -> {
if (o instanceof SuperviseBean) {
//我发起的督办
BaseFragment fragmentOne = FragmentUtils.getFragmentOne(PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_DETAIL, "id", ((SuperviseBean) o).getOverseeId());
mMainActivity.addFragment(1, fragmentOne);
} else if (o instanceof BySuperviseListBean.RowsBean) {
//被督办
if ("nto".equals(((BySuperviseListBean.RowsBean) o).getStatus())) {
//未办结
BaseFragment fragmentOne = FragmentUtils.getFragmentTwo(
PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_TRANSACT,
"id",
((BySuperviseListBean.RowsBean) o).getOverseeId(),
"userId",
((BySuperviseListBean.RowsBean) o).getOverseeUserId());
mMainActivity.addFragment(1, fragmentOne);
} else {
//已办结
BaseFragment fragmentOne = FragmentUtils.getFragmentTwo(
PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_DETAIL,
"id",
((SuperviseBean) o).getOverseeId(), "userId", ((BySuperviseListBean.RowsBean) o).getOverseeUserId());
mMainActivity.addFragment(1, fragmentOne);
}
}
});
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();
mTvStartDate.setText("");
mTvEndDate.setText("");
mKeywords = "";
doRefresh();
});
}
@Override
public void onAttach(@androidx.annotation.NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void resetCondition() {
mEtBaseSearchCancel.setText("");
mTvStartDate.setText("");
mTvEndDate.setText("");
mCsvState.setState(CustomStateView.STATE_LOAD);
doRefresh();
}
/**
* 时间选择
*/
private void onShowDate(int i) {
TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> {
switch (i) {
case 1:
mTvStartDate.setText(TimeUtils.dateToString(date));
break;
case 2:
//判断时间大小
String start = mTvStartDate.getText().toString().trim();
int span = TimeUtils.compareDate(date, TimeUtils.stringToDate(start));
if (span >= 0) {
mTvEndDate.setText(TimeUtils.dateToString(date));
mCsvState.setState(CustomStateView.STATE_LOAD);
doRefresh();
} else {
ToastUtils.show("结束时间须大于开始时间");
}
break;
}
})
.setTitleText("请选时间")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.isDialog(false)
.setType(new boolean[]{true, true, true, false, false, false})
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mTimePickerView.show();
}
/**
* 加载更多
*/
private void doLoadMore() {
if (mType == 1) {
getMineApplyList(mCurrentPage);
} else {
getBySuperviseList(mCurrentPage);
}
}
/**
* 刷新
*/
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
mCsvState.setState(CustomStateView.STATE_LOAD);
if (mType == 1) {
getMineApplyList(1);
} else {
getBySuperviseList(1);
}
}
private void getMineApplyList(int currentPage) {
mCurrentPage = currentPage;
String start = mTvStartDate.getText().toString().trim();
String end = mTvEndDate.getText().toString().trim();
RetrofitManager.getInstance()
.create(OAApi.class)
.getMineApplySuperviseList(start, end, mKeywords, mCurrentPage + "")
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<SuperviseListBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull SuperviseListBean 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() {
}
});
}
/**
* 获取被督办的列表
*/
private void getBySuperviseList(int currentPage) {
mCurrentPage = currentPage;
String start = mTvStartDate.getText().toString().trim();
String end = mTvEndDate.getText().toString().trim();
RetrofitManager.getInstance()
.create(OAApi.class)
.getBySuperviseList(start, end, mKeywords, mCurrentPage + "")
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<BySuperviseListBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull BySuperviseListBean 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
public void onHiddenChanged(boolean hidden) {
if (!hidden) {
if (mIsRefresh) {
mIsRefresh = false;
doRefresh();
}
}
super.onHiddenChanged(hidden);
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,223 @@
package com.tenlionsoft.oamodule.pad.fragments.home.supervise;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
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.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
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.SaveRepectSuperviseBean;
import com.tenlionsoft.oamodule.beans.SuperviseBean;
import com.tenlionsoft.oamodule.net.OAApi;
import com.tenlionsoft.oamodule.pad.activitys.home.PadMainActivity;
import org.jetbrains.annotations.NotNull;
import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 作者: adam
* 日期: 2022/5/9 - 16:37
* 邮箱: itgaojian@163.com
* 描述: 督办回复
*/
@Route(path = PathConfig.PATH_MODULE_PAD_OA_FRAGMENT_SUPERVISE_TRANSACT)
public class SuperviseTransactFragment extends BaseFragment {
@BindView(R2.id.tv_name)
TextView mTvName;
@BindView(R2.id.tv_type)
TextView mTvType;
@BindView(R2.id.tv_end_time)
TextView mTvEndTime;
@BindView(R2.id.tv_relevance)
TextView mTvRelevance;
@BindView(R2.id.tv_users)
TextView mTvUsers;
@BindView(R2.id.tv_request)
TextView mTvRequest;
@BindView(R2.id.cb_notice_msg)
CheckBox mCbNoticeMsg;
@BindView(R2.id.cb_notice_email)
CheckBox mCbNoticeEmail;
@BindView(R2.id.et_repect_content)
EditText mEtRepectContent;
@BindView(R2.id.btn_confirm)
Button mBtnConfirm;
private PadMainActivity mMainActivity;
private String mId;
private String mUserId;
@Override
protected int getContentViewId() {
return R.layout.fragment_supervise_transact;
}
@Override
protected void setDataToView(View dataView) {
ButterKnife.bind(this, dataView);
setTitleView(true);
mTvFragmentTitle.setText("督办回复");
mIvFragmentBack.setOnClickListener(v -> mMainActivity.backFragment(1, this));
Bundle bundle = getArguments();
if (bundle != null) {
mId = bundle.getString("id");
mUserId = bundle.getString("userId");
}
if (TextUtils.isEmpty(mId)) {
ToastUtils.show("数据有误");
mMainActivity.backFragment(1, this);
} else {
getDetailData();
}
initViews();
}
@Override
public void onAttach(@NonNull @NotNull Context context) {
super.onAttach(context);
mMainActivity = (PadMainActivity) getActivity();
}
private void initViews() {
mBtnConfirm.setOnClickListener(v -> doConfirm());
}
private void doConfirm() {
if (checkParams()) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "提交中...");
dialog.show();
RequestBody body = buildParams();
RetrofitManager.getInstance()
.create(OAApi.class)
.doSaveRepectSupervise(mUserId, body)
.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(1, SuperviseTransactFragment.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 boolean checkParams() {
String content = mEtRepectContent.getText().toString().trim();
if (TextUtils.isEmpty(content)) {
ToastUtils.show("请输入回复内容");
return false;
}
return true;
}
private RequestBody buildParams() {
SaveRepectSuperviseBean bean = new SaveRepectSuperviseBean();
String content = mEtRepectContent.getText().toString().trim();
bean.setContent(content);
bean.setOverseeId(mId);
bean.setUserId(UserLgUtils.getUserId());
bean.setUserName(UserLgUtils.getName());
return RequestBody.create(new Gson().toJson(bean), MediaType.parse("application/json; charset=utf-8"));
}
private void getDetailData() {
RetrofitManager.getInstance()
.create(OAApi.class)
.getSuperviseDetail(mId)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer<SuperviseBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull SuperviseBean superviseBean) {
setDataToView(superviseBean);
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
setStateView(STATE_ERROR);
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void setDataToView(SuperviseBean bean) {
setStateView(STATE_SUCCESS);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
mTvName.setText(bean.getOverseeTitle());
mTvType.setText(bean.getOverseeTypeName());
mTvEndTime.setText(bean.getOverseeCompleteTime());
mTvRelevance.setText(bean.getOverseeItemName());
mTvUsers.setText(bean.getOverseeUserNames());
mTvRequest.setText(bean.getOverseeContent());
mCbNoticeMsg.setChecked(bean.getOverseeNoticeType().contains("1"));
mCbNoticeEmail.setChecked(bean.getOverseeNoticeType().contains("2"));
}
@Override
protected void refreshView() {
}
@Override
protected void loadMoreData() {
}
}

View File

@ -0,0 +1,191 @@
<?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"
tools:context=".activity.meeting.MeetingCenterActivity">
<RelativeLayout
android:id="@+id/rl_content_title"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginBottom="10dp"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<ImageView
android:id="@+id/iv_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:background="@drawable/ic_back_black"
android:clickable="true"
android:focusable="true"
android:maxLength="8"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:scaleType="fitXY"
android:textColor="@color/white"
android:textSize="13sp"
android:visibility="visible"
tools:text=""
tools:visibility="visible" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true">
<RadioGroup
android:id="@+id/rg_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_apply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/switch_custom_gray_white"
android:button="@null"
android:checked="true"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:text="我监督的"
android:textStyle="bold" />
<RadioButton
android:id="@+id/rb_mine"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/switch_custom_gray_white"
android:button="@null"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:text="监督我的"
android:textStyle="bold" />
</RadioGroup>
</RelativeLayout>
<TextView
android:id="@+id/iv_control"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="5dp"
android:clickable="true"
android:focusable="true"
android:text="发起监督"
android:textColor="@color/black"
android:textSize="12sp" />
</RelativeLayout>
<include layout="@layout/layout_base_search_cancel" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="3dp"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_white_5"
android:gravity="center">
<TextView
android:id="@+id/tv_start_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:drawableLeft="@drawable/ic_arrow_cir"
android:focusable="true"
android:gravity="center"
android:hint="开始日期"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="12sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="至"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_end_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:hint="结束日期"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white" />
</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,265 @@
<?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">
<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="70dp"
android:background="@color/white"
android:scrollbars="none">
<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:orientation="vertical"
android:paddingTop="10dp"
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_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: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_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" />
<TextView
android:id="@+id/tv_end_time"
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_relevance"
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_users"
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>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="5dp"
android:paddingBottom="10dp">
<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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/shp_rectangle_gray"
android:orientation="vertical">
<EditText
android:id="@+id/et_request"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="left"
android:hint="请输入督办内容"
android:minLines="3"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_request_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
tools:text="0/140" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="10dp"
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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cb_notice_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:background="@drawable/shape_rectangle_white_gray_border"
android:button="@null"
android:drawableLeft="@drawable/sel_checkbox_blue_gray"
android:drawablePadding="5dp"
android:padding="5dp"
android:text="短信" />
<CheckBox
android:id="@+id/cb_notice_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_rectangle_white_gray_border"
android:button="@null"
android:drawableLeft="@drawable/sel_checkbox_blue_gray"
android:drawablePadding="5dp"
android:padding="5dp"
android:text="邮件" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<Button
android:id="@+id/btn_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="10dp"
android:background="@drawable/sel_btn_submit_no_size"
android:text="发起督办"
android:textColor="@color/col_white_gray_press" />
</RelativeLayout>

View File

@ -0,0 +1,337 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@color/white"
android:scrollbars="none">
<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:orientation="vertical"
android:paddingTop="10dp"
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" />
<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_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_end_time"
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_relevance"
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_users"
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>
<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_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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/shp_rectangle_gray"
android:orientation="vertical">
<TextView
android:id="@+id/tv_request"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="left"
android:hint="未录入"
android:minLines="3"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="10dp"
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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cb_notice_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:background="@drawable/shape_rectangle_white_gray_border"
android:button="@null"
android:drawableLeft="@drawable/sel_checkbox_blue_gray"
android:drawablePadding="5dp"
android:enabled="false"
android:padding="5dp"
android:text="短信" />
<CheckBox
android:id="@+id/cb_notice_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_rectangle_white_gray_border"
android:button="@null"
android:drawableLeft="@drawable/sel_checkbox_blue_gray"
android:drawablePadding="5dp"
android:enabled="false"
android:padding="5dp"
android:text="邮件" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_repect"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/shp_rectangle_gray"
android:orientation="vertical">
<TextView
android:id="@+id/tv_repect_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="left"
android:hint="未录入"
android:minLines="3"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</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_repect_users"-->
<!-- 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_repect_time"-->
<!-- 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>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</RelativeLayout>

View File

@ -0,0 +1,290 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_f0"
android:orientation="vertical">
<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="50dp"
android:background="@color/white"
android:scrollbars="none">
<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:orientation="vertical"
android:paddingTop="10dp"
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" />
<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: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_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_end_time"
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_relevance"
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_users"
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>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@color/white"
android:orientation="vertical"
android:paddingTop="5dp"
android:paddingBottom="10dp">
<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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/shp_rectangle_gray"
android:orientation="vertical">
<TextView
android:id="@+id/tv_request"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="left"
android:hint="未录入"
android:minLines="3"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingTop="10dp"
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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="horizontal">
<CheckBox
android:id="@+id/cb_notice_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:button="@null"
android:drawableLeft="@drawable/sel_check_item_cir"
android:enabled="false"
android:text="短信" />
<CheckBox
android:id="@+id/cb_notice_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@null"
android:drawableLeft="@drawable/sel_check_item_cir"
android:enabled="false"
android:text="邮件" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingTop="10dp"
android:paddingBottom="10dp">
<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" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/shp_rectangle_gray"
android:orientation="vertical">
<EditText
android:id="@+id/et_repect_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:gravity="left"
android:hint="请输入回复内容"
android:minLines="3"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<Button
android:id="@+id/btn_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="回复" />
</RelativeLayout>