56fb40fa160492a64caa9819bf631814cb09c253.svn-base 11 KB

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