diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt new file mode 100644 index 0000000..22d241b --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt @@ -0,0 +1,115 @@ +package com.casic.qd.smartwell.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.qd.smartwell.R +import com.casic.qd.smartwell.extensions.arrowAnimation +import com.casic.qd.smartwell.model.ExpandableDataModel +import com.casic.qd.smartwell.model.OrderListModel +import com.casic.qd.smartwell.utils.TimeLineItemDecoration + +class OrderNotConfirmedAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var isExpand = false + + override fun onCreateViewHolder( + parent: ViewGroup, viewType: Int + ): OrderNotConfirmedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_not_confirmed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderNotConfirmedAdapter.ItemViewHolder, position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue.isBlank()) { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + holder.currentStateView.text = + String.format("${rowsBean.jobStatusName}-${rowsBean.jobBelongTo}") + + //绑定事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + + val expandableViewAdapter = ExpandableViewAdapter(context) + holder.expandableView.adapter = expandableViewAdapter + holder.expandableView.layoutManager = LinearLayoutManager(context) + holder.expandableView.addItemDecoration(TimeLineItemDecoration(context)) + holder.expandableImageView.setOnClickListener { + if (!isExpand) { + //展开列表动画 + holder.expandableImageView.arrowAnimation(180f) + isExpand = true + //子列表绑定数据 + expandableViewAdapter.setExpandableData(createExpandableList(rowsBean)) + } else { + //关闭列表动画 + holder.expandableImageView.arrowAnimation(0f) + isExpand = false + //子列表清空数据 + expandableViewAdapter.clearAll() + } + } + } + } + + private fun createExpandableList(rowsBean: OrderListModel.DataBean.RowsBean): MutableList { + val expandableList: MutableList = ArrayList() + expandableList.add(ExpandableDataModel(rowsBean.createTime, "发起工单")) + expandableList.add( + ExpandableDataModel( + rowsBean.getJobTime, + String.format("${rowsBean.getJobPerson}接单") + ) + ) + return expandableList + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var expandableImageView: ImageView = view.findViewById(R.id.expandableImageView) + var expandableView: RecyclerView = view.findViewById(R.id.expandableView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt new file mode 100644 index 0000000..22d241b --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt @@ -0,0 +1,115 @@ +package com.casic.qd.smartwell.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.qd.smartwell.R +import com.casic.qd.smartwell.extensions.arrowAnimation +import com.casic.qd.smartwell.model.ExpandableDataModel +import com.casic.qd.smartwell.model.OrderListModel +import com.casic.qd.smartwell.utils.TimeLineItemDecoration + +class OrderNotConfirmedAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var isExpand = false + + override fun onCreateViewHolder( + parent: ViewGroup, viewType: Int + ): OrderNotConfirmedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_not_confirmed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderNotConfirmedAdapter.ItemViewHolder, position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue.isBlank()) { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + holder.currentStateView.text = + String.format("${rowsBean.jobStatusName}-${rowsBean.jobBelongTo}") + + //绑定事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + + val expandableViewAdapter = ExpandableViewAdapter(context) + holder.expandableView.adapter = expandableViewAdapter + holder.expandableView.layoutManager = LinearLayoutManager(context) + holder.expandableView.addItemDecoration(TimeLineItemDecoration(context)) + holder.expandableImageView.setOnClickListener { + if (!isExpand) { + //展开列表动画 + holder.expandableImageView.arrowAnimation(180f) + isExpand = true + //子列表绑定数据 + expandableViewAdapter.setExpandableData(createExpandableList(rowsBean)) + } else { + //关闭列表动画 + holder.expandableImageView.arrowAnimation(0f) + isExpand = false + //子列表清空数据 + expandableViewAdapter.clearAll() + } + } + } + } + + private fun createExpandableList(rowsBean: OrderListModel.DataBean.RowsBean): MutableList { + val expandableList: MutableList = ArrayList() + expandableList.add(ExpandableDataModel(rowsBean.createTime, "发起工单")) + expandableList.add( + ExpandableDataModel( + rowsBean.getJobTime, + String.format("${rowsBean.getJobPerson}接单") + ) + ) + return expandableList + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var expandableImageView: ImageView = view.findViewById(R.id.expandableImageView) + var expandableView: RecyclerView = view.findViewById(R.id.expandableView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt index e9d260d..9338bfa 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt @@ -113,6 +113,26 @@ inHandleAdapter = OrderInHandleAdapter(requireContext(), dataBeans) orderInHandleView!!.layoutManager = LinearLayoutManager(requireContext()) orderInHandleView!!.adapter = inHandleAdapter + inHandleAdapter.setOnItemClickListener(object : + OrderInHandleAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show() + return + } +// requireContext().navigatePageTo(jobId) + } + + override fun onTransferViewClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show() + return + } + workOrderViewModel.obtainWorkOrderDetail(jobId) + } + }) } } } diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt new file mode 100644 index 0000000..22d241b --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt @@ -0,0 +1,115 @@ +package com.casic.qd.smartwell.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.qd.smartwell.R +import com.casic.qd.smartwell.extensions.arrowAnimation +import com.casic.qd.smartwell.model.ExpandableDataModel +import com.casic.qd.smartwell.model.OrderListModel +import com.casic.qd.smartwell.utils.TimeLineItemDecoration + +class OrderNotConfirmedAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var isExpand = false + + override fun onCreateViewHolder( + parent: ViewGroup, viewType: Int + ): OrderNotConfirmedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_not_confirmed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderNotConfirmedAdapter.ItemViewHolder, position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue.isBlank()) { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + holder.currentStateView.text = + String.format("${rowsBean.jobStatusName}-${rowsBean.jobBelongTo}") + + //绑定事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + + val expandableViewAdapter = ExpandableViewAdapter(context) + holder.expandableView.adapter = expandableViewAdapter + holder.expandableView.layoutManager = LinearLayoutManager(context) + holder.expandableView.addItemDecoration(TimeLineItemDecoration(context)) + holder.expandableImageView.setOnClickListener { + if (!isExpand) { + //展开列表动画 + holder.expandableImageView.arrowAnimation(180f) + isExpand = true + //子列表绑定数据 + expandableViewAdapter.setExpandableData(createExpandableList(rowsBean)) + } else { + //关闭列表动画 + holder.expandableImageView.arrowAnimation(0f) + isExpand = false + //子列表清空数据 + expandableViewAdapter.clearAll() + } + } + } + } + + private fun createExpandableList(rowsBean: OrderListModel.DataBean.RowsBean): MutableList { + val expandableList: MutableList = ArrayList() + expandableList.add(ExpandableDataModel(rowsBean.createTime, "发起工单")) + expandableList.add( + ExpandableDataModel( + rowsBean.getJobTime, + String.format("${rowsBean.getJobPerson}接单") + ) + ) + return expandableList + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var expandableImageView: ImageView = view.findViewById(R.id.expandableImageView) + var expandableView: RecyclerView = view.findViewById(R.id.expandableView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt index e9d260d..9338bfa 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt @@ -113,6 +113,26 @@ inHandleAdapter = OrderInHandleAdapter(requireContext(), dataBeans) orderInHandleView!!.layoutManager = LinearLayoutManager(requireContext()) orderInHandleView!!.adapter = inHandleAdapter + inHandleAdapter.setOnItemClickListener(object : + OrderInHandleAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show() + return + } +// requireContext().navigatePageTo(jobId) + } + + override fun onTransferViewClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show() + return + } + workOrderViewModel.obtainWorkOrderDetail(jobId) + } + }) } } } diff --git a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt index b8aeec6..fb1d824 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt @@ -1,13 +1,32 @@ package com.casic.qd.smartwell.fragment +import android.os.Handler +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R +import com.casic.qd.smartwell.adapter.OrderNotConfirmedAdapter import com.casic.qd.smartwell.base.BaseFragment +import com.casic.qd.smartwell.extensions.show +import com.casic.qd.smartwell.extensions.showEmptyPage +import com.casic.qd.smartwell.model.OrderListModel +import com.casic.qd.smartwell.utils.WeakReferenceHandler +import com.casic.qd.smartwell.vm.WorkOrderViewModel +import kotlinx.android.synthetic.main.fragment_order_not_confirmed.* +import kotlinx.android.synthetic.main.include_empty_view.* /** * 工单-待确认 * */ class OrderNotConfirmedFragment : BaseFragment() { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var workOrderViewModel: WorkOrderViewModel + private lateinit var notConfirmedAdapter: OrderNotConfirmedAdapter + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + override fun initLayoutView(): Int = R.layout.fragment_order_not_confirmed override fun setupTopBarLayout() { @@ -15,10 +34,85 @@ } override fun initData() { - + weakReferenceHandler = WeakReferenceHandler(callback) + workOrderViewModel = ViewModelProvider(this).get(WorkOrderViewModel::class.java) + //默认加载第一页 + obtainWorkOrderList() } override fun initEvent() { + notConfirmedLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainWorkOrderList() + } + notConfirmedLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainWorkOrderList() + } + workOrderViewModel.orderListModel.observe(this, { + if (it.code == 200) { + val dataRows = it.data?.rows + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows!! + notConfirmedLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows?.size == 0) { + "到底了,别拉了".show() + } + dataBeans.addAll(dataRows!!) + notConfirmedLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows!! + } + } + weakReferenceHandler.sendEmptyMessage(2022061503) + } + }) + } + + private fun obtainWorkOrderList() { + workOrderViewModel.obtainOrderListByState("1", pageIndex) + } + + private val callback = Handler.Callback { + if (it.what == 2022061503) { + if (isRefresh || isLoadMore) { + notConfirmedAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有需要您确认的工单") { + pageIndex = 1 + obtainWorkOrderList() + } + } else { + emptyView!!.hide() + notConfirmedAdapter = OrderNotConfirmedAdapter(requireContext(), dataBeans) + notConfirmedView!!.layoutManager = LinearLayoutManager(requireContext()) + notConfirmedView!!.adapter = notConfirmedAdapter + notConfirmedAdapter.setOnItemClickListener(object : + OrderNotConfirmedAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show() + return + } +// requireContext().navigatePageTo(jobId) + } + }) + } + } + } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt new file mode 100644 index 0000000..22d241b --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderNotConfirmedAdapter.kt @@ -0,0 +1,115 @@ +package com.casic.qd.smartwell.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.casic.qd.smartwell.R +import com.casic.qd.smartwell.extensions.arrowAnimation +import com.casic.qd.smartwell.model.ExpandableDataModel +import com.casic.qd.smartwell.model.OrderListModel +import com.casic.qd.smartwell.utils.TimeLineItemDecoration + +class OrderNotConfirmedAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var isExpand = false + + override fun onCreateViewHolder( + parent: ViewGroup, viewType: Int + ): OrderNotConfirmedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_not_confirmed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderNotConfirmedAdapter.ItemViewHolder, position: Int + ) { + //绑定数据 + val rowsBean = dataRows[position] + holder.alarmContentView.text = rowsBean.alarmContentName + holder.createTimeView.text = rowsBean.createTime + holder.wellCodeView.text = rowsBean.wellCode + val alarmValue = rowsBean.alarmValue.toString() + if (alarmValue.isBlank()) { + holder.alarmValueView.text = "报警值未知" + } else { + holder.alarmValueView.text = alarmValue + } + holder.wellLocationView.text = rowsBean.position + holder.currentStateView.text = + String.format("${rowsBean.jobStatusName}-${rowsBean.jobBelongTo}") + + //绑定事件 + if (listener != null) { + holder.itemView.setOnClickListener { + listener!!.onClicked(position) + } + + val expandableViewAdapter = ExpandableViewAdapter(context) + holder.expandableView.adapter = expandableViewAdapter + holder.expandableView.layoutManager = LinearLayoutManager(context) + holder.expandableView.addItemDecoration(TimeLineItemDecoration(context)) + holder.expandableImageView.setOnClickListener { + if (!isExpand) { + //展开列表动画 + holder.expandableImageView.arrowAnimation(180f) + isExpand = true + //子列表绑定数据 + expandableViewAdapter.setExpandableData(createExpandableList(rowsBean)) + } else { + //关闭列表动画 + holder.expandableImageView.arrowAnimation(0f) + isExpand = false + //子列表清空数据 + expandableViewAdapter.clearAll() + } + } + } + } + + private fun createExpandableList(rowsBean: OrderListModel.DataBean.RowsBean): MutableList { + val expandableList: MutableList = ArrayList() + expandableList.add(ExpandableDataModel(rowsBean.createTime, "发起工单")) + expandableList.add( + ExpandableDataModel( + rowsBean.getJobTime, + String.format("${rowsBean.getJobPerson}接单") + ) + ) + return expandableList + } + + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { + var alarmContentView: TextView = view.findViewById(R.id.alarmContentView) + var createTimeView: TextView = view.findViewById(R.id.createTimeView) + var wellCodeView: TextView = view.findViewById(R.id.wellCodeView) + var alarmValueView: TextView = view.findViewById(R.id.alarmValueView) + var wellLocationView: TextView = view.findViewById(R.id.wellLocationView) + var currentStateView: TextView = view.findViewById(R.id.currentStateView) + var expandableImageView: ImageView = view.findViewById(R.id.expandableImageView) + var expandableView: RecyclerView = view.findViewById(R.id.expandableView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + } + + fun setOnItemClickListener(onClickListener: OnItemClickListener?) { + this.listener = onClickListener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt index e9d260d..9338bfa 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderInHandleFragment.kt @@ -113,6 +113,26 @@ inHandleAdapter = OrderInHandleAdapter(requireContext(), dataBeans) orderInHandleView!!.layoutManager = LinearLayoutManager(requireContext()) orderInHandleView!!.adapter = inHandleAdapter + inHandleAdapter.setOnItemClickListener(object : + OrderInHandleAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show() + return + } +// requireContext().navigatePageTo(jobId) + } + + override fun onTransferViewClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看工单流转记录".show() + return + } + workOrderViewModel.obtainWorkOrderDetail(jobId) + } + }) } } } diff --git a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt index b8aeec6..fb1d824 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderNotConfirmedFragment.kt @@ -1,13 +1,32 @@ package com.casic.qd.smartwell.fragment +import android.os.Handler +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R +import com.casic.qd.smartwell.adapter.OrderNotConfirmedAdapter import com.casic.qd.smartwell.base.BaseFragment +import com.casic.qd.smartwell.extensions.show +import com.casic.qd.smartwell.extensions.showEmptyPage +import com.casic.qd.smartwell.model.OrderListModel +import com.casic.qd.smartwell.utils.WeakReferenceHandler +import com.casic.qd.smartwell.vm.WorkOrderViewModel +import kotlinx.android.synthetic.main.fragment_order_not_confirmed.* +import kotlinx.android.synthetic.main.include_empty_view.* /** * 工单-待确认 * */ class OrderNotConfirmedFragment : BaseFragment() { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var workOrderViewModel: WorkOrderViewModel + private lateinit var notConfirmedAdapter: OrderNotConfirmedAdapter + private var dataBeans: MutableList = ArrayList() + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + override fun initLayoutView(): Int = R.layout.fragment_order_not_confirmed override fun setupTopBarLayout() { @@ -15,10 +34,85 @@ } override fun initData() { - + weakReferenceHandler = WeakReferenceHandler(callback) + workOrderViewModel = ViewModelProvider(this).get(WorkOrderViewModel::class.java) + //默认加载第一页 + obtainWorkOrderList() } override fun initEvent() { + notConfirmedLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainWorkOrderList() + } + notConfirmedLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainWorkOrderList() + } + workOrderViewModel.orderListModel.observe(this, { + if (it.code == 200) { + val dataRows = it.data?.rows + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows!! + notConfirmedLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows?.size == 0) { + "到底了,别拉了".show() + } + dataBeans.addAll(dataRows!!) + notConfirmedLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows!! + } + } + weakReferenceHandler.sendEmptyMessage(2022061503) + } + }) + } + + private fun obtainWorkOrderList() { + workOrderViewModel.obtainOrderListByState("1", pageIndex) + } + + private val callback = Handler.Callback { + if (it.what == 2022061503) { + if (isRefresh || isLoadMore) { + notConfirmedAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有需要您确认的工单") { + pageIndex = 1 + obtainWorkOrderList() + } + } else { + emptyView!!.hide() + notConfirmedAdapter = OrderNotConfirmedAdapter(requireContext(), dataBeans) + notConfirmedView!!.layoutManager = LinearLayoutManager(requireContext()) + notConfirmedView!!.adapter = notConfirmedAdapter + notConfirmedAdapter.setOnItemClickListener(object : + OrderNotConfirmedAdapter.OnItemClickListener { + override fun onClicked(position: Int) { + val jobId = dataBeans[position].jobId.toString() + if (jobId.isBlank()) { + "工单编号异常,无法查看详情".show() + return + } +// requireContext().navigatePageTo(jobId) + } + }) + } + } + } + true } } \ No newline at end of file diff --git a/app/src/main/res/layout/item_order_not_confirmed_recycleview.xml b/app/src/main/res/layout/item_order_not_confirmed_recycleview.xml new file mode 100644 index 0000000..1030acf --- /dev/null +++ b/app/src/main/res/layout/item_order_not_confirmed_recycleview.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file