package eVVM.apk.ui.report; import android.app.Dialog; import android.content.Intent; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.ajguan.library.EasyRefreshLayout; import com.chad.library.adapter.base.BaseQuickAdapter; import com.hjq.bar.TitleBar; import com.hjq.dialog.DateDialog; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.OnClick; import eVVM.apk.R; import eVVM.apk.helper.basepicker.DataPickerDialog; import eVVM.apk.mvp.MvpLazyFragment; import eVVM.apk.ui.adapter.VnListAdapter; import eVVM.apk.ui.bean.VnListBean; import eVVM.apk.ui.bean.VnNameBean; import eVVM.apk.ui.report.vndetail.VnReportDetailActivity; /** * Created by Android Studio. * User: zbb * Date: 2019/6/5 * Describe: ReportvnFragment */ public class ReportvnFragment extends MvpLazyFragment implements ReportVnContract.View { @BindView(R.id.tv_report_search) EditText tvReportSearch; @BindView(R.id.tv_report_gosearch) TextView tvReportGosearch; @BindView(R.id.tb_test_a_bar) TitleBar tbTestABar; @BindView(R.id.tv_vn_name) TextView tvVnName; @BindView(R.id.tv_vn_status) TextView tvVnStatus; @BindView(R.id.tv_vn_begintime) TextView tvVnBegintime; @BindView(R.id.tv_vn_endtime) TextView tvVnEndtime; @BindView(R.id.rl_reportvn) RecyclerView rlReportvn; @BindView(R.id.report_easylayout) EasyRefreshLayout reportEasylayout; private List vnDataList = new ArrayList<>(); private int page = 1; private int size = 10; private VnListAdapter vnListAdapter; private int nameIdByName; private int statusByString; private String chipNumber; private String vaccineCategoryId; private String status; private String beginTime; private String endTime; public static ReportvnFragment newInstance() { return new ReportvnFragment(); } @Override protected int getLayoutId() { return R.layout.report_fragment; } @Override protected int getTitleId() { return 0; } @Override protected void initView() { vnListAdapter = new VnListAdapter(R.layout.vnlistitem, vnDataList); rlReportvn.setAdapter(vnListAdapter); rlReportvn.setLayoutManager(new LinearLayoutManager(getBindingActivity())); vnListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { @Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) { Intent in = new Intent(getBindingActivity(), VnReportDetailActivity.class); in.putExtra("VnchipNumber", "" + vnDataList.get(position).getChipNumber()); startActivity(in); } }); reportEasylayout.addEasyEvent(new EasyRefreshLayout.EasyEvent() { @Override public void onLoadMore() { page += 1; search(page, size); } @Override public void onRefreshing() { page = 1; search(page, size); } }); } @Override protected void initData() { } private void search(int page, int size) { getPresenter().searchVnList(chipNumber, vaccineCategoryId, status, beginTime, endTime, page, size); } @OnClick({R.id.tv_report_gosearch, R.id.tv_vn_name, R.id.tv_vn_status, R.id.tv_vn_begintime, R.id.tv_vn_endtime}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.tv_report_gosearch: //搜索 // if (TextUtils.isEmpty(tvReportSearch.getText().toString())||TextUtils.isEmpty(tvVnName.getText().toString())||TextUtils.isEmpty(tvVnStatus.getText().toString()) // ||TextUtils.isEmpty(tvVnBegintime.getText().toString())||TextUtils.isEmpty(tvVnEndtime.getText().toString())){ // toast("请选择搜索内容"); // }else { // // } showLoading(); nameIdByName = getNameIdByName(tvVnName.getText().toString()); statusByString = getStatusByString(tvVnStatus.getText().toString()); chipNumber = tvReportSearch.getText().toString().equals("") ? null : tvReportSearch.getText().toString(); vaccineCategoryId = nameIdByName == 0 ? null : String.valueOf(nameIdByName); status = statusByString == -1 ? null : String.valueOf(statusByString); beginTime = tvVnBegintime.getText().toString().equals("") ? null : tvVnBegintime.getText().toString(); endTime = tvVnEndtime.getText().toString().equals("") ? null : tvVnEndtime.getText().toString(); search(page, size); break; case R.id.tv_vn_name: getPresenter().getName(); break; case R.id.tv_vn_status: DataPickerDialog.Builder builder = new DataPickerDialog.Builder(getBindingActivity()); List statusStringList = new ArrayList<>(); statusStringList.add("全部"); statusStringList.add("禁用"); statusStringList.add("正常"); statusStringList.add("删除"); statusStringList.add("风险"); statusStringList.add("报警"); statusStringList.add("废弃"); /*List parentlist = new ArrayList<>(); parentlist.add(new RoleTypeBean.RoleParen(6,"","医药企业")); parentlist.add(new RoleTypeBean.RoleParen(7,"","预防接种机构")); parentlist.add(new RoleTypeBean.RoleParen(8,"","预防接受种者")); parentlist.add(new RoleTypeBean.RoleParen(9,"","物流公司"));*/ DataPickerDialog dialog = builder.setData(statusStringList).setSelection(0).setTitle("全部") .setOnDataSelectedListener(new DataPickerDialog.OnDataSelectedListener() { @Override public void onDataSelected(String itemValue) { tvVnStatus.setText(itemValue + ""); } }).create(); dialog.show(); break; case R.id.tv_vn_begintime: new DateDialog.Builder(getBindingActivity()) .setTitle("请选择日期") .setListener(new DateDialog.OnListener() { @Override public void onSelected(Dialog dialog, int year, int month, int day) { //toast(year + "年" + month + "月" + day + "日"); tvVnBegintime.setText(year + "-" + month + "-" + day); } @Override public void onCancel(Dialog dialog) { //toast("取消了"); } }) .show(); break; case R.id.tv_vn_endtime: new DateDialog.Builder(getBindingActivity()) .setTitle("请选择日期") .setListener(new DateDialog.OnListener() { @Override public void onSelected(Dialog dialog, int year, int month, int day) { tvVnEndtime.setText(year + "-" + month + "-" + day); } @Override public void onCancel(Dialog dialog) { //toast("取消了"); } }) .show(); break; } } private int getStatusByString(String statusString) { if ("禁用".equals(statusString)) { return 0; } if ("正常".equals(statusString)) { return 1; } if ("删除".equals(statusString)) { return 2; } if ("风险".equals(statusString)) { return 3; } if ("报警".equals(statusString)) { return 4; } if ("废弃".equals(statusString)) { return 5; } if ("已使用".equals(statusString)) { return 6; } return -1; } private int getNameIdByName(String name) { for (VnNameBean.DataBean list : nameIdList) { if (list.getName().contains(name)) { return list.getId(); } } return 0; } @Override protected ReportVnPresenter createPresenter() { return new ReportVnPresenter(); } @Override public void getnameError(String msg) { toast(msg + ""); } List nameIdList = new ArrayList<>(); //@RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override public void getnameSuccess(VnNameBean data) { List nameLsit = data.getData(); if (nameLsit.size() == 0) { return; } else { // toast("成功"+nameLsit.toString()); //showPopupWindow(nameLsit); nameIdList.clear(); nameIdList.addAll(nameLsit); showDownPicker(nameLsit); } } @Override public void searchError(String msg) { showComplete(); toast(msg); if (reportEasylayout.isRefreshing()) { reportEasylayout.refreshComplete(); } if (reportEasylayout.isLoading()) { reportEasylayout.loadMoreComplete(); } } @Override public void searchSuccess(VnListBean data) { showComplete(); List vnListDatas = data.getData(); if (vnListDatas.size() == 0 && !reportEasylayout.isLoading()) { toast("该类疫苗暂无报告"); vnDataList.clear(); vnDataList.addAll(vnListDatas); vnListAdapter.setNewData(vnListDatas); vnListAdapter.notifyDataSetChanged(); reportEasylayout.refreshComplete(); return; } if (page == 1) { vnDataList.clear(); vnDataList.addAll(vnListDatas); vnListAdapter.setNewData(vnListDatas); vnListAdapter.notifyDataSetChanged(); reportEasylayout.refreshComplete(); } else { if (vnListDatas.size() == 0) { toast("没有更多啦"); } vnDataList.addAll(vnListDatas); vnListAdapter.getData().addAll(vnListDatas); vnListAdapter.notifyDataSetChanged(); reportEasylayout.loadMoreComplete(); } } private void showDownPicker(List nameLsit) { DataPickerDialog.Builder builder = new DataPickerDialog.Builder(getBindingActivity()); List nameStringList = new ArrayList<>(); nameStringList.add("全部"); for (int i = 0; i < nameLsit.size(); i++) { nameStringList.add(nameLsit.get(i).getName()); } /*List parentlist = new ArrayList<>(); parentlist.add(new RoleTypeBean.RoleParen(6,"","医药企业")); parentlist.add(new RoleTypeBean.RoleParen(7,"","预防接种机构")); parentlist.add(new RoleTypeBean.RoleParen(8,"","预防接受种者")); parentlist.add(new RoleTypeBean.RoleParen(9,"","物流公司"));*/ DataPickerDialog dialog = builder.setData(nameStringList).setSelection(0).setTitle("全部") .setOnDataSelectedListener(new DataPickerDialog.OnDataSelectedListener() { @Override public void onDataSelected(String itemValue) { tvVnName.setText(itemValue + ""); } }).create(); dialog.show(); } /*@RequiresApi(api = Build.VERSION_CODES.KITKAT) private void showPopupWindow(final List nameLsit){ View view = LayoutInflater.from(getBindingActivity()).inflate(R.layout.vnnamepop,null); //初始化List数据 //初始化RecyclerView RecyclerView recyslerview = (RecyclerView) view.findViewById(R.id.rv_vnname); //创建LinearLayoutManager 对象 这里使用 LinearLayoutManager 是线性布局的意思 ReportVnAdapter reportVnAdapter = new ReportVnAdapter(R.layout.rvvnname,nameLsit); recyslerview.setAdapter(reportVnAdapter); GridLayoutManager layoutmanager = new GridLayoutManager(getBindingActivity(),4); //设置RecyclerView 布局 recyslerview.setLayoutManager(layoutmanager); //解决android7.0以上手机的适配问题 final PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, AutoSizeUtils.dp2px(getBindingActivity(),90)){ @Override public void showAsDropDown(View anchor) { if(Build.VERSION.SDK_INT >= 24){ Rect visibleFrame = new Rect(); anchor.getGlobalVisibleRect(visibleFrame); int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom; setHeight(height); } super.showAsDropDown(anchor); } @Override public void showAsDropDown(View anchor, int xoff, int yoff) { if(Build.VERSION.SDK_INT >= 24) { Rect rect = new Rect(); anchor.getGlobalVisibleRect(rect); int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom; setHeight(h); } super.showAsDropDown(anchor, xoff, yoff); } }; ColorDrawable dw = new ColorDrawable(0xFFF0F5FF); popupWindow.setBackgroundDrawable(dw); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); popupWindow.showAsDropDown(tvVnName, view.getHeight(), 0, Gravity.NO_GRAVITY); reportVnAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { @Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) { tvVnName.setText(""+nameLsit.get(position).getName()); popupWindow.dismiss(); } }); }*/ @Override public void onLoading() { } @Override public void onComplete() { } @Override public void onEmpty() { } @Override public void onError() { } }