diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 9f511a3..b318446 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -1,17 +1,26 @@ package com.casic.dcms.ui; -import android.widget.LinearLayout; +import android.content.Context; +import android.graphics.Color; +import android.view.View; import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; -import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.bean.HighEventBean; import com.casic.dcms.databinding.ActivityHighEventBinding; -import com.casic.dcms.ui.fragment.ExcelFragment; -import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.mvp.presenter.impl.HighEventPresenterImpl; +import com.casic.dcms.mvp.view.IHighEventView; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -21,9 +30,12 @@ * @time : 2021/4/16 8:44 * @email : 290677893@qq.com */ -public class HighEventListActivity extends AndroidxBaseActivity { +public class HighEventListActivity extends AndroidxBaseActivity implements IHighEventView { private static final String TAG = HighEventListActivity.class.getSimpleName(); + private final List excelDataBeans = new ArrayList<>(); + private final Context context = HighEventListActivity.this; + private HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { @@ -33,20 +45,67 @@ @Override protected void initData() { - List fragmentList = new ArrayList<>(); - fragmentList.add(ExcelFragment.newInstance(TAG)); - fragmentList.add(PieChartFragment.newInstance(TAG)); - SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.CHART_PAGE_TITLES, fragmentList); - viewBinding.eventViewPager.setAdapter(adapter); - //绑定TabLayout - viewBinding.eventTabLayout.setupWithViewPager(viewBinding.eventViewPager); - LinearLayout linearLayout = (LinearLayout) viewBinding.eventTabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); - linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + initTableConfig(); + highEventPresenter = new HighEventPresenterImpl(this); + + highEventPresenter.onReadyRetrofitRequest(begTime, endTime); + } + + private void initTableConfig() { + TableConfig config = viewBinding.eventTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY)); + config.setContentBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + config.setShowTableTitle(false); //不显示标题 + config.setShowXSequence(false); //不显示横向ABC....序列 + config.setShowYSequence(false); //不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.getCode() == 200) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); + } + viewBinding.eventTableView.setData(excelDataBeans); + } } @Override protected void initEvent() { + viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + new TimePickerDialog.Builder() + .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor)) + .setTitleStringId("选择日期") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } + @Override + public void onDestroy() { + highEventPresenter.disposeRetrofitRequest(); + super.onDestroy(); } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 9f511a3..b318446 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -1,17 +1,26 @@ package com.casic.dcms.ui; -import android.widget.LinearLayout; +import android.content.Context; +import android.graphics.Color; +import android.view.View; import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; +import com.bin.david.form.core.TableConfig; +import com.bin.david.form.data.style.FontStyle; import com.casic.dcms.R; -import com.casic.dcms.adapter.SubViewPagerAdapter; import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.bean.ExcelDataBean; +import com.casic.dcms.bean.HighEventBean; import com.casic.dcms.databinding.ActivityHighEventBinding; -import com.casic.dcms.ui.fragment.ExcelFragment; -import com.casic.dcms.ui.fragment.PieChartFragment; +import com.casic.dcms.mvp.presenter.impl.HighEventPresenterImpl; +import com.casic.dcms.mvp.view.IHighEventView; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; import java.util.ArrayList; import java.util.List; @@ -21,9 +30,12 @@ * @time : 2021/4/16 8:44 * @email : 290677893@qq.com */ -public class HighEventListActivity extends AndroidxBaseActivity { +public class HighEventListActivity extends AndroidxBaseActivity implements IHighEventView { private static final String TAG = HighEventListActivity.class.getSimpleName(); + private final List excelDataBeans = new ArrayList<>(); + private final Context context = HighEventListActivity.this; + private HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { @@ -33,20 +45,67 @@ @Override protected void initData() { - List fragmentList = new ArrayList<>(); - fragmentList.add(ExcelFragment.newInstance(TAG)); - fragmentList.add(PieChartFragment.newInstance(TAG)); - SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.CHART_PAGE_TITLES, fragmentList); - viewBinding.eventViewPager.setAdapter(adapter); - //绑定TabLayout - viewBinding.eventTabLayout.setupWithViewPager(viewBinding.eventViewPager); - LinearLayout linearLayout = (LinearLayout) viewBinding.eventTabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); - linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + initTableConfig(); + highEventPresenter = new HighEventPresenterImpl(this); + + highEventPresenter.onReadyRetrofitRequest(begTime, endTime); + } + + private void initTableConfig() { + TableConfig config = viewBinding.eventTableView.getConfig(); + //首行属性 + config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY)); + config.setContentBackgroundColor(Color.LTGRAY); + config.setColumnTitleVerticalPadding(30); + //内容属性 + config.setContentStyle(new FontStyle(50, Color.DKGRAY)); + config.setVerticalPadding(30); + config.setShowTableTitle(false); //不显示标题 + config.setShowXSequence(false); //不显示横向ABC....序列 + config.setShowYSequence(false); //不显示纵向123....序列 + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.getCode() == 200) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); + } + viewBinding.eventTableView.setData(excelDataBeans); + } } @Override protected void initEvent() { + viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + new TimePickerDialog.Builder() + .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor)) + .setTitleStringId("选择日期") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } + @Override + public void onDestroy() { + highEventPresenter.disposeRetrofitRequest(); + super.onDestroy(); } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml index 763a64e..94f1211 100644 --- a/app/src/main/res/layout/activity_high_event.xml +++ b/app/src/main/res/layout/activity_high_event.xml @@ -7,29 +7,58 @@ + layout="@layout/include_option_plus_title" /> - + android:layout_height="wrap_content" + android:scrollbars="vertical"> - + android:orientation="vertical" + android:padding="@dimen/padding_10dp"> - + - - + + + + + + + + + + + + + + + \ No newline at end of file