4df5ee8e114032e8e4e73efa2f6b45454b8d0486.svn-base 13 KB

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