c1f803f23661b8869ca3bc95cbfbc7d5ced3e196.svn-base 13 KB

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