Эх сурвалжийг харах

优化八大步骤页面显示;封装页面切换传参

Frankensteinly 9 сар өмнө
parent
commit
a161437730

+ 9 - 0
app/src/main/java/com/grkj/iscs/model/bo/PageChangeBO.kt

@@ -0,0 +1,9 @@
+package com.grkj.iscs.model.bo
+
+data class PageChangeBO(
+    val pageIdx: Int,
+    val workstationId: Long? = null,
+    val ticketId: Long? = null,
+    val machineryId: Long? = null,
+    val machineryName: String? = null
+)

+ 12 - 8
app/src/main/java/com/grkj/iscs/view/fragment/JobExecutionFragment.kt

@@ -1,6 +1,8 @@
 package com.grkj.iscs.view.fragment
 
 import com.grkj.iscs.databinding.FragmentJobExecutionBinding
+import com.grkj.iscs.model.bo.PageChangeBO
+import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.activity.HomeActivity.Menu
 import com.grkj.iscs.view.adapter.MenuAdapter
 import com.grkj.iscs.view.base.BaseMvpFragment
@@ -14,17 +16,17 @@ class JobExecutionFragment :
     BaseMvpFragment<IJobExecutionView, JobExecutionPresenter, FragmentJobExecutionBinding>() {
 
     private lateinit var mMenuList: MutableList<Menu>
-    private var mTicketId: Long? = null
+    private var mPageChangeBO: PageChangeBO? = null
 
     override val viewBinding: FragmentJobExecutionBinding
         get() = FragmentJobExecutionBinding.inflate(layoutInflater)
 
     override fun initView() {
         mMenuList = mutableListOf(
-            Menu(fragment = StepFragment({ refreshPage(mTicketId!!) }) {
+            Menu(fragment = StepFragment({ refreshPage(mPageChangeBO!!) }) {
                 changePage(it)
             }),
-            Menu(fragment = WorkerFragment({ refreshPage(mTicketId!!) }) {
+            Menu(fragment = WorkerFragment({ refreshPage(mPageChangeBO!!) }) {
                 changePage(it)
             }),
             Menu(fragment = JobProgressFragment())
@@ -38,13 +40,15 @@ class JobExecutionFragment :
         return JobExecutionPresenter()
     }
 
-    fun refreshPage(ticketId: Long) {
-        mTicketId = ticketId
+    fun refreshPage(pageChangeBO: PageChangeBO) {
+        LogUtil.i("$pageChangeBO")
+        mPageChangeBO = pageChangeBO
         mBinding?.vp?.currentItem = 0
-        (mMenuList[0].fragment as StepFragment).refreshPage(ticketId)
+        (mMenuList[0].fragment as StepFragment).refreshPage(mPageChangeBO!!)
     }
 
-    private fun changePage(pageIndex: Int) {
-        mBinding?.vp?.currentItem = pageIndex
+    private fun changePage(pageChangeBO: PageChangeBO) {
+        LogUtil.i("$pageChangeBO")
+        mBinding?.vp?.currentItem = pageChangeBO.pageIdx
     }
 }

+ 12 - 9
app/src/main/java/com/grkj/iscs/view/fragment/JobManagementFragment.kt

@@ -3,6 +3,8 @@ package com.grkj.iscs.view.fragment
 import android.widget.ImageView
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentJobManagementBinding
+import com.grkj.iscs.model.bo.PageChangeBO
+import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.activity.HomeActivity.Menu
 import com.grkj.iscs.view.adapter.MenuAdapter
 import com.grkj.iscs.view.base.BaseMvpFragment
@@ -24,11 +26,11 @@ class JobManagementFragment :
 
     override fun initView() {
         mMenuList = mutableListOf(
-            Menu(getString(R.string.workshop), R.mipmap.workshop, WorkshopFragment { pageIdx, workstationId, ticketId, machineryName ->
-                changePage(pageIdx, machineryName, if (pageIdx == 1) workstationId else ticketId)
+            Menu(getString(R.string.workshop), R.mipmap.workshop, WorkshopFragment { pageChangeBO ->
+                changePage(pageChangeBO)
             }),
-            Menu(getString(R.string.technology_sop), R.mipmap.technology, TechnologySopFragment { pageIdx, ticketId ->
-                changePage(pageIdx, data = ticketId)
+            Menu(getString(R.string.technology_sop), R.mipmap.technology, TechnologySopFragment { pageChangeBO ->
+                changePage(pageChangeBO)
             }),
             Menu(getString(R.string.job_execution), R.mipmap.job_execution, JobExecutionFragment())
         )
@@ -53,12 +55,13 @@ class JobManagementFragment :
         }
     }
 
-    private fun changePage(pageIndex: Int, title: String? = null, data: Any? = null) {
-        when (pageIndex) {
-            1 -> (mMenuList[1].fragment as TechnologySopFragment).refreshPage(title, data as Long)
-            2 -> (mMenuList[2].fragment as JobExecutionFragment).refreshPage(data as Long)
+    private fun changePage(pageChangeBO: PageChangeBO) {
+        LogUtil.i("$pageChangeBO")
+        when (pageChangeBO.pageIdx) {
+            1 -> (mMenuList[1].fragment as TechnologySopFragment).refreshPage(pageChangeBO)
+            2 -> (mMenuList[2].fragment as JobExecutionFragment).refreshPage(pageChangeBO)
         }
-        mBinding?.vp?.currentItem = pageIndex
+        mBinding?.vp?.currentItem = pageChangeBO.pageIdx
         mBinding?.rvTab?.adapter?.notifyDataSetChanged()
     }
 

+ 10 - 12
app/src/main/java/com/grkj/iscs/view/fragment/StepFragment.kt

@@ -3,7 +3,9 @@ package com.grkj.iscs.view.fragment
 import android.widget.ImageView
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentStepBinding
+import com.grkj.iscs.model.bo.PageChangeBO
 import com.grkj.iscs.model.vo.ticket.StepDetailRespVO
+import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.base.BaseMvpFragment
 import com.grkj.iscs.view.iview.IStepView
 import com.grkj.iscs.view.presenter.StepPresenter
@@ -13,7 +15,7 @@ import com.zhy.adapter.recyclerview.base.ViewHolder
 /**
  * 作业票执行步骤页 - 八大步骤
  */
-class StepFragment(val goBack: () -> Unit, val changePage: (Int) -> Unit) : BaseMvpFragment<IStepView, StepPresenter, FragmentStepBinding>() {
+class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Unit) : BaseMvpFragment<IStepView, StepPresenter, FragmentStepBinding>() {
 
     private lateinit var mStepList: MutableList<StepBO>
 
@@ -33,14 +35,9 @@ class StepFragment(val goBack: () -> Unit, val changePage: (Int) -> Unit) : Base
         )
         mBinding?.rvStep?.adapter = object : CommonAdapter<StepBO>(requireContext(), R.layout.item_rv_step, mStepList) {
             override fun convert(holder: ViewHolder, step: StepBO, position: Int) {
-                if (step.index == 4) {
-                    holder.setVisible(R.id.iv_arrow_right, false)
-                    holder.setVisible(R.id.iv_arrow_bottom, true)
-                } else if (step.index == 5) {
-                    holder.setVisible(R.id.iv_arrow_right, false)
-                } else if (step.index > 5) {
-                    holder.getView<ImageView>(R.id.iv_arrow_right).rotation = 180f
-                }
+                holder.setVisible(R.id.iv_arrow_right, step.index !in 4..5)
+                holder.setVisible(R.id.iv_arrow_bottom, step.index == 4)
+                holder.getView<ImageView>(R.id.iv_arrow_right).rotation = if (step.index > 5) 180f else 0f
                 holder.getView<ImageView>(R.id.iv_icon).setImageResource(step.pic)
                 holder.setText(R.id.tv_name, step.stepDetail?.stepContent)
                 holder.setText(R.id.tv_index, step.indexStr)
@@ -58,12 +55,13 @@ class StepFragment(val goBack: () -> Unit, val changePage: (Int) -> Unit) : Base
         }
 
         mBinding?.llDetail?.setOnClickListener {
-            changePage(2)
+            changePage(PageChangeBO(2))
         }
     }
 
-    fun refreshPage(ticketId: Long) {
-        presenter?.getStepDetail(ticketId) {
+    fun refreshPage(changeBO: PageChangeBO) {
+        LogUtil.i("$changeBO")
+        presenter?.getStepDetail(changeBO.ticketId!!) {
             mStepList.forEach { step ->
                 step.stepDetail = it?.find { it.stepIndex == step.index }
             }

+ 8 - 5
app/src/main/java/com/grkj/iscs/view/fragment/TechnologySopFragment.kt

@@ -7,7 +7,9 @@ import com.bumptech.glide.Glide
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentTechnologySopBinding
 import com.grkj.iscs.model.Constants.mSopTypeList
+import com.grkj.iscs.model.bo.PageChangeBO
 import com.grkj.iscs.model.vo.machinery.MachineryPageRespVO
+import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.base.BaseMvpFragment
 import com.grkj.iscs.view.iview.ITechnologySopView
 import com.grkj.iscs.view.presenter.TechnologySopPresenter
@@ -19,7 +21,7 @@ import com.zhy.adapter.recyclerview.base.ViewHolder
  *
  * @param changePage 页面index、工作票ID
  */
-class TechnologySopFragment(val changePage: (Int, Long) -> Unit) :
+class TechnologySopFragment(val changePage: (PageChangeBO) -> Unit) :
     BaseMvpFragment<ITechnologySopView, TechnologySopPresenter, FragmentTechnologySopBinding>() {
 
     private val mMachineryList = mutableListOf<MachineryPageRespVO.Record>()
@@ -77,15 +79,16 @@ class TechnologySopFragment(val changePage: (Int, Long) -> Unit) :
         mBinding?.cbStart?.setOnClickListener {
             presenter?.createTicket(mMachineryIdx, mSopTypeIdx, mMachineryList) {
                 it?.let {
-                    changePage(2, it)
+                    changePage(PageChangeBO(2, ticketId = it))
                 }
             }
         }
     }
 
-    fun refreshPage(title: String?, workstationId: Long) {
-        mBinding?.tvTitle?.text = title
-        presenter?.getMachineryPage(workstationId) {
+    fun refreshPage(pageChangeBO: PageChangeBO) {
+        LogUtil.i("$pageChangeBO")
+        mBinding?.tvTitle?.text = pageChangeBO.machineryName
+        presenter?.getMachineryPage(pageChangeBO.workstationId!!) {
             mMachineryList.clear()
             it?.records?.let {
                 mMachineryList.addAll(it)

+ 2 - 1
app/src/main/java/com/grkj/iscs/view/fragment/WorkerFragment.kt

@@ -4,6 +4,7 @@ import android.view.View
 import android.widget.ImageView
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentWorkerBinding
+import com.grkj.iscs.model.bo.PageChangeBO
 import com.grkj.iscs.view.base.BaseMvpFragment
 import com.grkj.iscs.view.iview.IWorkerView
 import com.grkj.iscs.view.presenter.WorkerPresenter
@@ -13,7 +14,7 @@ import com.zhy.adapter.recyclerview.base.ViewHolder
 /**
  * 分配人员页
  */
-class WorkerFragment(val goBack: () -> Unit, val changePage: (Int) -> Unit) :
+class WorkerFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Unit) :
     BaseMvpFragment<IWorkerView, WorkerPresenter, FragmentWorkerBinding>() {
 
     override val viewBinding: FragmentWorkerBinding

+ 18 - 5
app/src/main/java/com/grkj/iscs/view/fragment/WorkshopFragment.kt

@@ -7,6 +7,7 @@ import android.widget.ImageView
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentWorkshopBinding
 import com.grkj.iscs.model.Constants
+import com.grkj.iscs.model.bo.PageChangeBO
 import com.grkj.iscs.model.vo.ticket.WorkstationTicketListRespVO
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.view.base.BaseMvpFragment
@@ -20,10 +21,8 @@ import java.io.IOException
 
 /**
  * 车间岗位页
- *
- * @param changePage: page页、workstationId、ticketId、工艺名
  */
-class WorkshopFragment(val changePage: (Int, Long, Long?, String) -> Unit) :
+class WorkshopFragment(val changePage: (PageChangeBO) -> Unit) :
     BaseMvpFragment<IWorkshopView, WorkshopPresenter, FragmentWorkshopBinding>() {
 
     private lateinit var jobStatisticList: MutableList<JobStatistics>
@@ -91,9 +90,23 @@ class WorkshopFragment(val changePage: (Int, Long, Long?, String) -> Unit) :
                     override fun markIsClick(index: Int, btnIndex: Int) {
 //                        ToastUtils.tip(mPointList[index].name + " is selected, btnIndex is " + btnIndex)
                         if (btnIndex == -1) {
-                            changePage(1, mPointList[index].workstationId, null, mPointList[index].name)
+                            changePage(
+                                PageChangeBO(
+                                    1,
+                                    mPointList[index].workstationId,
+                                    machineryName = mPointList[index].name
+                                )
+                            )
                         } else {
-                            changePage(2, mPointList[index].workstationId, mPointList[index].ticketList[btnIndex].ticketId, mPointList[index].name)
+                            changePage(
+                                PageChangeBO(
+                                    2,
+                                    mPointList[index].workstationId,
+                                    mPointList[index].ticketList[btnIndex].ticketId,
+                                    mPointList[index].ticketList[btnIndex].machineryId,
+                                    mPointList[index].name
+                                )
+                            )
                         }
                     }
                 })

+ 1 - 0
app/src/main/res/layout/fragment_step.xml

@@ -119,6 +119,7 @@
             style="@style/CommonRecyclerView"
             android:layout_width="0dp"
             android:layout_height="0dp"
+            android:layout_marginLeft="@dimen/common_spacing_small"
             app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintHorizontal_weight="1150"

+ 11 - 12
app/src/main/res/layout/item_rv_step.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/root"
-    android:layout_width="match_parent"
+    android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_marginLeft="5dp">
+    android:layout_marginLeft="@dimen/common_spacing_small">
 
     <LinearLayout
         android:id="@+id/ll_step"
@@ -39,8 +39,8 @@
         <TextView
             android:id="@+id/tv_name"
             style="@style/CommonTextView"
-            android:textSize="@dimen/common_text_size_small"
-            android:layout_marginVertical="5dp" />
+            android:layout_marginVertical="5dp"
+            android:textSize="@dimen/common_text_size_small" />
 
         <TextView
             android:id="@+id/tv_index"
@@ -49,21 +49,20 @@
 
     <ImageView
         android:id="@+id/iv_arrow_right"
-        android:layout_width="15dp"
-        android:layout_height="15dp"
+        android:layout_width="11dp"
+        android:layout_height="11dp"
         android:layout_centerVertical="true"
-        android:layout_marginLeft="5dp"
+        android:layout_marginLeft="@dimen/common_spacing_small"
         android:layout_toRightOf="@id/ll_step"
         android:src="@mipmap/arrow" />
 
     <ImageView
         android:id="@+id/iv_arrow_bottom"
-        android:layout_width="13dp"
-        android:layout_height="13dp"
+        android:layout_width="11dp"
+        android:layout_height="11dp"
         android:layout_below="@id/ll_step"
         android:layout_centerHorizontal="true"
         android:layout_marginVertical="5dp"
-        android:background="@mipmap/arrow"
-        android:rotation="90"
-        android:visibility="gone" />
+        android:src="@mipmap/arrow"
+        android:rotation="90" />
 </RelativeLayout>

BIN
app/src/main/res/mipmap/arrow.png


+ 1 - 1
app/src/main/res/values/dimens.xml

@@ -73,7 +73,7 @@
     <dimen name="dialog_tip_height">144dp</dimen>
     
     <dimen name="item_rv_step_width">80dp</dimen>
-    <dimen name="item_rv_step_height">108dp</dimen>
+    <dimen name="item_rv_step_height">111dp</dimen>
     <dimen name="item_rv_menu_size">58dp</dimen>
     <dimen name="item_rv_menu_icon_size">20dp</dimen>
     <dimen name="item_rv_login_width">100dp</dimen>