a9c321664ad01966d476bfa469b61976b9a11e9f.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  1. package eVVM.apk.ui.report;
  2. import android.app.Dialog;
  3. import android.content.Intent;
  4. import android.support.v7.widget.LinearLayoutManager;
  5. import android.support.v7.widget.RecyclerView;
  6. import android.view.View;
  7. import android.widget.EditText;
  8. import android.widget.TextView;
  9. import com.ajguan.library.EasyRefreshLayout;
  10. import com.chad.library.adapter.base.BaseQuickAdapter;
  11. import com.hjq.bar.TitleBar;
  12. import com.hjq.dialog.DateDialog;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import butterknife.BindView;
  16. import butterknife.OnClick;
  17. import eVVM.apk.R;
  18. import eVVM.apk.helper.basepicker.DataPickerDialog;
  19. import eVVM.apk.mvp.MvpLazyFragment;
  20. import eVVM.apk.ui.adapter.VnListAdapter;
  21. import eVVM.apk.ui.bean.VnListBean;
  22. import eVVM.apk.ui.bean.VnNameBean;
  23. import eVVM.apk.ui.report.vndetail.VnReportDetailActivity;
  24. /**
  25. * Created by Android Studio.
  26. * User: zbb
  27. * Date: 2019/6/5
  28. * Describe: ReportvnFragment
  29. */
  30. public class ReportvnFragment extends MvpLazyFragment<ReportVnPresenter> implements ReportVnContract.View {
  31. @BindView(R.id.tv_report_search)
  32. EditText tvReportSearch;
  33. @BindView(R.id.tv_report_gosearch)
  34. TextView tvReportGosearch;
  35. @BindView(R.id.tb_test_a_bar)
  36. TitleBar tbTestABar;
  37. @BindView(R.id.tv_vn_name)
  38. TextView tvVnName;
  39. @BindView(R.id.tv_vn_status)
  40. TextView tvVnStatus;
  41. @BindView(R.id.tv_vn_begintime)
  42. TextView tvVnBegintime;
  43. @BindView(R.id.tv_vn_endtime)
  44. TextView tvVnEndtime;
  45. @BindView(R.id.rl_reportvn)
  46. RecyclerView rlReportvn;
  47. @BindView(R.id.report_easylayout)
  48. EasyRefreshLayout reportEasylayout;
  49. private List<VnListBean.DataBean> vnDataList = new ArrayList<>();
  50. private int page = 1;
  51. private int size = 10;
  52. private VnListAdapter vnListAdapter;
  53. public static ReportvnFragment newInstance() {
  54. return new ReportvnFragment();
  55. }
  56. @Override
  57. protected int getLayoutId() {
  58. return R.layout.report_fragment;
  59. }
  60. @Override
  61. protected int getTitleId() {
  62. return 0;
  63. }
  64. @Override
  65. protected void initView() {
  66. vnListAdapter = new VnListAdapter(R.layout.vnlistitem, vnDataList);
  67. rlReportvn.setAdapter(vnListAdapter);
  68. rlReportvn.setLayoutManager(new LinearLayoutManager(getBindingActivity()));
  69. vnListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  70. @Override
  71. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  72. Intent in = new Intent(getBindingActivity(), VnReportDetailActivity.class);
  73. in.putExtra("VnchipNumber", "" + vnDataList.get(position).getChipNumber());
  74. startActivity(in);
  75. }
  76. });
  77. reportEasylayout.addEasyEvent(new EasyRefreshLayout.EasyEvent() {
  78. @Override
  79. public void onLoadMore() {
  80. page += 1;
  81. search(page, size);
  82. }
  83. @Override
  84. public void onRefreshing() {
  85. page = 1;
  86. search(page, size);
  87. }
  88. });
  89. }
  90. @Override
  91. protected void initData() {
  92. }
  93. private void search(int page, int size) {
  94. showLoading();
  95. int nameIdByName = getNameIdByName(tvVnName.getText().toString());
  96. int statusByString = getStatusByString(tvVnStatus.getText().toString());
  97. String chipNumber = tvReportSearch.getText().toString().equals("") ? null : tvReportSearch.getText().toString();
  98. String vaccineCategoryId = nameIdByName == 0 ? null : String.valueOf(nameIdByName);
  99. String status = statusByString == -1 ? null : String.valueOf(statusByString);
  100. String beginTime = tvVnBegintime.getText().toString().equals("") ? null : tvVnBegintime.getText().toString();
  101. String endTime = tvVnEndtime.getText().toString().equals("") ? null : tvVnEndtime.getText().toString();
  102. getPresenter().searchVnList(chipNumber, vaccineCategoryId, status, beginTime, endTime, page, size);
  103. }
  104. @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})
  105. public void onViewClicked(View view) {
  106. switch (view.getId()) {
  107. case R.id.tv_report_gosearch:
  108. //搜索
  109. // if (TextUtils.isEmpty(tvReportSearch.getText().toString())||TextUtils.isEmpty(tvVnName.getText().toString())||TextUtils.isEmpty(tvVnStatus.getText().toString())
  110. // ||TextUtils.isEmpty(tvVnBegintime.getText().toString())||TextUtils.isEmpty(tvVnEndtime.getText().toString())){
  111. // toast("请选择搜索内容");
  112. // }else {
  113. //
  114. // }
  115. search(1, 10);
  116. break;
  117. case R.id.tv_vn_name:
  118. getPresenter().getName();
  119. break;
  120. case R.id.tv_vn_status:
  121. DataPickerDialog.Builder builder = new DataPickerDialog.Builder(getBindingActivity());
  122. List<String> statusStringList = new ArrayList<>();
  123. statusStringList.add("全部");
  124. statusStringList.add("禁用");
  125. statusStringList.add("正常");
  126. statusStringList.add("删除");
  127. statusStringList.add("风险");
  128. statusStringList.add("报警");
  129. statusStringList.add("废弃");
  130. /*List<RoleTypeBean.RoleParen> parentlist = new ArrayList<>();
  131. parentlist.add(new RoleTypeBean.RoleParen(6,"","医药企业"));
  132. parentlist.add(new RoleTypeBean.RoleParen(7,"","预防接种机构"));
  133. parentlist.add(new RoleTypeBean.RoleParen(8,"","预防接受种者"));
  134. parentlist.add(new RoleTypeBean.RoleParen(9,"","物流公司"));*/
  135. DataPickerDialog dialog = builder.setData(statusStringList).setSelection(0).setTitle("全部")
  136. .setOnDataSelectedListener(new DataPickerDialog.OnDataSelectedListener() {
  137. @Override
  138. public void onDataSelected(String itemValue) {
  139. tvVnStatus.setText(itemValue + "");
  140. }
  141. }).create();
  142. dialog.show();
  143. break;
  144. case R.id.tv_vn_begintime:
  145. new DateDialog.Builder(getBindingActivity())
  146. .setTitle("请选择日期")
  147. .setListener(new DateDialog.OnListener() {
  148. @Override
  149. public void onSelected(Dialog dialog, int year, int month, int day) {
  150. //toast(year + "年" + month + "月" + day + "日");
  151. tvVnBegintime.setText(year + "-" + month + "-" + day);
  152. }
  153. @Override
  154. public void onCancel(Dialog dialog) {
  155. //toast("取消了");
  156. }
  157. })
  158. .show();
  159. break;
  160. case R.id.tv_vn_endtime:
  161. new DateDialog.Builder(getBindingActivity())
  162. .setTitle("请选择日期")
  163. .setListener(new DateDialog.OnListener() {
  164. @Override
  165. public void onSelected(Dialog dialog, int year, int month, int day) {
  166. tvVnEndtime.setText(year + "-" + month + "-" + day);
  167. }
  168. @Override
  169. public void onCancel(Dialog dialog) {
  170. //toast("取消了");
  171. }
  172. })
  173. .show();
  174. break;
  175. }
  176. }
  177. private int getStatusByString(String statusString) {
  178. if ("禁用".equals(statusString)) {
  179. return 0;
  180. }
  181. if ("正常".equals(statusString)) {
  182. return 1;
  183. }
  184. if ("删除".equals(statusString)) {
  185. return 2;
  186. }
  187. if ("风险".equals(statusString)) {
  188. return 3;
  189. }
  190. if ("报警".equals(statusString)) {
  191. return 4;
  192. }
  193. if ("废弃".equals(statusString)) {
  194. return 5;
  195. }
  196. if ("已使用".equals(statusString)) {
  197. return 6;
  198. }
  199. return -1;
  200. }
  201. private int getNameIdByName(String name) {
  202. for (VnNameBean.DataBean list : nameIdList) {
  203. if (list.getName().contains(name)) {
  204. return list.getId();
  205. }
  206. }
  207. return 0;
  208. }
  209. @Override
  210. protected ReportVnPresenter createPresenter() {
  211. return new ReportVnPresenter();
  212. }
  213. @Override
  214. public void getnameError(String msg) {
  215. toast(msg + "");
  216. }
  217. List<VnNameBean.DataBean> nameIdList = new ArrayList<>();
  218. //@RequiresApi(api = Build.VERSION_CODES.KITKAT)
  219. @Override
  220. public void getnameSuccess(VnNameBean data) {
  221. List<VnNameBean.DataBean> nameLsit = data.getData();
  222. if (nameLsit.size() == 0) {
  223. return;
  224. } else {
  225. // toast("成功"+nameLsit.toString());
  226. //showPopupWindow(nameLsit);
  227. nameIdList.clear();
  228. nameIdList.addAll(nameLsit);
  229. showDownPicker(nameLsit);
  230. }
  231. }
  232. @Override
  233. public void searchError(String msg) {
  234. showComplete();
  235. toast(msg);
  236. if (reportEasylayout.isRefreshing()) {
  237. reportEasylayout.refreshComplete();
  238. }
  239. if (reportEasylayout.isLoading()) {
  240. reportEasylayout.loadMoreComplete();
  241. }
  242. }
  243. @Override
  244. public void searchSuccess(VnListBean data) {
  245. showComplete();
  246. List<VnListBean.DataBean> vnListDatas = data.getData();
  247. if (vnListDatas.size() == 0 && !reportEasylayout.isLoading()) {
  248. toast("该类疫苗暂无报告");
  249. vnDataList.clear();
  250. vnDataList.addAll(vnListDatas);
  251. vnListAdapter.setNewData(vnListDatas);
  252. vnListAdapter.notifyDataSetChanged();
  253. reportEasylayout.refreshComplete();
  254. return;
  255. }
  256. if (page == 1) {
  257. vnDataList.clear();
  258. vnDataList.addAll(vnListDatas);
  259. vnListAdapter.setNewData(vnListDatas);
  260. vnListAdapter.notifyDataSetChanged();
  261. reportEasylayout.refreshComplete();
  262. } else {
  263. if (vnListDatas.size() == 0) {
  264. toast("没有更多啦");
  265. }
  266. vnDataList.addAll(vnListDatas);
  267. vnListAdapter.getData().addAll(vnListDatas);
  268. vnListAdapter.notifyDataSetChanged();
  269. reportEasylayout.loadMoreComplete();
  270. }
  271. }
  272. private void showDownPicker(List<VnNameBean.DataBean> nameLsit) {
  273. DataPickerDialog.Builder builder = new DataPickerDialog.Builder(getBindingActivity());
  274. List<String> nameStringList = new ArrayList<>();
  275. nameStringList.add("全部");
  276. for (int i = 0; i < nameLsit.size(); i++) {
  277. nameStringList.add(nameLsit.get(i).getName());
  278. }
  279. /*List<RoleTypeBean.RoleParen> parentlist = new ArrayList<>();
  280. parentlist.add(new RoleTypeBean.RoleParen(6,"","医药企业"));
  281. parentlist.add(new RoleTypeBean.RoleParen(7,"","预防接种机构"));
  282. parentlist.add(new RoleTypeBean.RoleParen(8,"","预防接受种者"));
  283. parentlist.add(new RoleTypeBean.RoleParen(9,"","物流公司"));*/
  284. DataPickerDialog dialog = builder.setData(nameStringList).setSelection(0).setTitle("全部")
  285. .setOnDataSelectedListener(new DataPickerDialog.OnDataSelectedListener() {
  286. @Override
  287. public void onDataSelected(String itemValue) {
  288. tvVnName.setText(itemValue + "");
  289. }
  290. }).create();
  291. dialog.show();
  292. }
  293. /*@RequiresApi(api = Build.VERSION_CODES.KITKAT)
  294. private void showPopupWindow(final List<VnNameBean.DataBean> nameLsit){
  295. View view = LayoutInflater.from(getBindingActivity()).inflate(R.layout.vnnamepop,null);
  296. //初始化List数据
  297. //初始化RecyclerView
  298. RecyclerView recyslerview = (RecyclerView) view.findViewById(R.id.rv_vnname);
  299. //创建LinearLayoutManager 对象 这里使用 LinearLayoutManager 是线性布局的意思
  300. ReportVnAdapter reportVnAdapter = new ReportVnAdapter(R.layout.rvvnname,nameLsit);
  301. recyslerview.setAdapter(reportVnAdapter);
  302. GridLayoutManager layoutmanager = new GridLayoutManager(getBindingActivity(),4);
  303. //设置RecyclerView 布局
  304. recyslerview.setLayoutManager(layoutmanager);
  305. //解决android7.0以上手机的适配问题
  306. final PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, AutoSizeUtils.dp2px(getBindingActivity(),90)){
  307. @Override
  308. public void showAsDropDown(View anchor) {
  309. if(Build.VERSION.SDK_INT >= 24){
  310. Rect visibleFrame = new Rect();
  311. anchor.getGlobalVisibleRect(visibleFrame);
  312. int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom;
  313. setHeight(height);
  314. }
  315. super.showAsDropDown(anchor);
  316. }
  317. @Override
  318. public void showAsDropDown(View anchor, int xoff, int yoff) {
  319. if(Build.VERSION.SDK_INT >= 24) {
  320. Rect rect = new Rect();
  321. anchor.getGlobalVisibleRect(rect);
  322. int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
  323. setHeight(h);
  324. }
  325. super.showAsDropDown(anchor, xoff, yoff);
  326. }
  327. };
  328. ColorDrawable dw = new ColorDrawable(0xFFF0F5FF);
  329. popupWindow.setBackgroundDrawable(dw);
  330. popupWindow.setOutsideTouchable(true);
  331. popupWindow.setFocusable(true);
  332. popupWindow.showAsDropDown(tvVnName, view.getHeight(), 0, Gravity.NO_GRAVITY);
  333. reportVnAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  334. @Override
  335. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  336. tvVnName.setText(""+nameLsit.get(position).getName());
  337. popupWindow.dismiss();
  338. }
  339. });
  340. }*/
  341. @Override
  342. public void onLoading() {
  343. }
  344. @Override
  345. public void onComplete() {
  346. }
  347. @Override
  348. public void onEmpty() {
  349. }
  350. @Override
  351. public void onError() {
  352. }
  353. }