diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt deleted file mode 100644 index 9aa1742..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt +++ /dev/null @@ -1,137 +0,0 @@ -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 -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class CompletedOrderAdapter( - 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 - ): CompletedOrderAdapter.ItemViewHolder { - return ItemViewHolder( - layoutInflater.inflate( - R.layout.item_order_completed_recycleview, parent, false - ) - ) - } - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder( - holder: CompletedOrderAdapter.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() - } - } - - holder.transferView.setChangeAlphaWhenPress(true) - holder.transferView.setOnClickListener { - listener!!.onTransferViewClicked(position) - } - } - } - - 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}接单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.confirmJobTime, - String.format("${rowsBean.confirmJobPerson}确认工单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.handleJobTime, - String.format("${rowsBean.handleJobPerson}完成工单") - ) - ) - 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) - var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onTransferViewClicked(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/CompletedOrderAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt deleted file mode 100644 index 9aa1742..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt +++ /dev/null @@ -1,137 +0,0 @@ -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 -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class CompletedOrderAdapter( - 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 - ): CompletedOrderAdapter.ItemViewHolder { - return ItemViewHolder( - layoutInflater.inflate( - R.layout.item_order_completed_recycleview, parent, false - ) - ) - } - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder( - holder: CompletedOrderAdapter.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() - } - } - - holder.transferView.setChangeAlphaWhenPress(true) - holder.transferView.setOnClickListener { - listener!!.onTransferViewClicked(position) - } - } - } - - 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}接单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.confirmJobTime, - String.format("${rowsBean.confirmJobPerson}确认工单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.handleJobTime, - String.format("${rowsBean.handleJobPerson}完成工单") - ) - ) - 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) - var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onTransferViewClicked(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/OrderCompletedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt new file mode 100644 index 0000000..f36c15d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt @@ -0,0 +1,137 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderCompletedAdapter( + 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 + ): OrderCompletedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_completed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderCompletedAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.handleJobTime, + String.format("${rowsBean.handleJobPerson}完成工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/CompletedOrderAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt deleted file mode 100644 index 9aa1742..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt +++ /dev/null @@ -1,137 +0,0 @@ -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 -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class CompletedOrderAdapter( - 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 - ): CompletedOrderAdapter.ItemViewHolder { - return ItemViewHolder( - layoutInflater.inflate( - R.layout.item_order_completed_recycleview, parent, false - ) - ) - } - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder( - holder: CompletedOrderAdapter.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() - } - } - - holder.transferView.setChangeAlphaWhenPress(true) - holder.transferView.setOnClickListener { - listener!!.onTransferViewClicked(position) - } - } - } - - 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}接单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.confirmJobTime, - String.format("${rowsBean.confirmJobPerson}确认工单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.handleJobTime, - String.format("${rowsBean.handleJobPerson}完成工单") - ) - ) - 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) - var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onTransferViewClicked(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/OrderCompletedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt new file mode 100644 index 0000000..f36c15d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt @@ -0,0 +1,137 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderCompletedAdapter( + 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 + ): OrderCompletedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_completed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderCompletedAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.handleJobTime, + String.format("${rowsBean.handleJobPerson}完成工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderInHandleAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt new file mode 100644 index 0000000..a7fcfa8 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt @@ -0,0 +1,130 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderInHandleAdapter( + 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 + ): OrderInHandleAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_in_handle_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderInHandleAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/CompletedOrderAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt deleted file mode 100644 index 9aa1742..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt +++ /dev/null @@ -1,137 +0,0 @@ -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 -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class CompletedOrderAdapter( - 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 - ): CompletedOrderAdapter.ItemViewHolder { - return ItemViewHolder( - layoutInflater.inflate( - R.layout.item_order_completed_recycleview, parent, false - ) - ) - } - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder( - holder: CompletedOrderAdapter.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() - } - } - - holder.transferView.setChangeAlphaWhenPress(true) - holder.transferView.setOnClickListener { - listener!!.onTransferViewClicked(position) - } - } - } - - 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}接单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.confirmJobTime, - String.format("${rowsBean.confirmJobPerson}确认工单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.handleJobTime, - String.format("${rowsBean.handleJobPerson}完成工单") - ) - ) - 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) - var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onTransferViewClicked(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/OrderCompletedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt new file mode 100644 index 0000000..f36c15d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt @@ -0,0 +1,137 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderCompletedAdapter( + 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 + ): OrderCompletedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_completed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderCompletedAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.handleJobTime, + String.format("${rowsBean.handleJobPerson}完成工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderInHandleAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt new file mode 100644 index 0000000..a7fcfa8 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt @@ -0,0 +1,130 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderInHandleAdapter( + 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 + ): OrderInHandleAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_in_handle_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderInHandleAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderCompletedFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt index 5e74d5d..41ad8e7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.CompletedOrderAdapter +import com.casic.qd.smartwell.adapter.OrderCompletedAdapter import com.casic.qd.smartwell.base.BaseFragment import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage @@ -22,7 +22,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workOrderViewModel: WorkOrderViewModel - private lateinit var completedAdapter: CompletedOrderAdapter + private lateinit var completedAdapter: OrderCompletedAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -110,11 +110,11 @@ } } else { emptyView!!.hide() - completedAdapter = CompletedOrderAdapter(requireContext(), dataBeans) + completedAdapter = OrderCompletedAdapter(requireContext(), dataBeans) orderCompletedView!!.layoutManager = LinearLayoutManager(requireContext()) orderCompletedView!!.adapter = completedAdapter completedAdapter.setOnItemClickListener(object : - CompletedOrderAdapter.OnItemClickListener { + OrderCompletedAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = dataBeans[position].jobId.toString() if (jobId.isBlank()) { diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt deleted file mode 100644 index 9aa1742..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt +++ /dev/null @@ -1,137 +0,0 @@ -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 -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class CompletedOrderAdapter( - 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 - ): CompletedOrderAdapter.ItemViewHolder { - return ItemViewHolder( - layoutInflater.inflate( - R.layout.item_order_completed_recycleview, parent, false - ) - ) - } - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder( - holder: CompletedOrderAdapter.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() - } - } - - holder.transferView.setChangeAlphaWhenPress(true) - holder.transferView.setOnClickListener { - listener!!.onTransferViewClicked(position) - } - } - } - - 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}接单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.confirmJobTime, - String.format("${rowsBean.confirmJobPerson}确认工单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.handleJobTime, - String.format("${rowsBean.handleJobPerson}完成工单") - ) - ) - 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) - var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onTransferViewClicked(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/OrderCompletedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt new file mode 100644 index 0000000..f36c15d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt @@ -0,0 +1,137 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderCompletedAdapter( + 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 + ): OrderCompletedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_completed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderCompletedAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.handleJobTime, + String.format("${rowsBean.handleJobPerson}完成工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderInHandleAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt new file mode 100644 index 0000000..a7fcfa8 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt @@ -0,0 +1,130 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderInHandleAdapter( + 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 + ): OrderInHandleAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_in_handle_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderInHandleAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderCompletedFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt index 5e74d5d..41ad8e7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.CompletedOrderAdapter +import com.casic.qd.smartwell.adapter.OrderCompletedAdapter import com.casic.qd.smartwell.base.BaseFragment import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage @@ -22,7 +22,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workOrderViewModel: WorkOrderViewModel - private lateinit var completedAdapter: CompletedOrderAdapter + private lateinit var completedAdapter: OrderCompletedAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -110,11 +110,11 @@ } } else { emptyView!!.hide() - completedAdapter = CompletedOrderAdapter(requireContext(), dataBeans) + completedAdapter = OrderCompletedAdapter(requireContext(), dataBeans) orderCompletedView!!.layoutManager = LinearLayoutManager(requireContext()) orderCompletedView!!.adapter = completedAdapter completedAdapter.setOnItemClickListener(object : - CompletedOrderAdapter.OnItemClickListener { + OrderCompletedAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = dataBeans[position].jobId.toString() if (jobId.isBlank()) { 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 bed71bb..e9d260d 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 @@ -1,13 +1,33 @@ 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.OrderInHandleAdapter 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 com.casic.qd.smartwell.widgets.TimeLineBottomSheet +import kotlinx.android.synthetic.main.fragment_order_in_handle.* +import kotlinx.android.synthetic.main.include_empty_view.* /** * 工单-处理中 * */ class OrderInHandleFragment : BaseFragment() { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var workOrderViewModel: WorkOrderViewModel + private lateinit var inHandleAdapter: OrderInHandleAdapter + 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_in_handle override fun setupTopBarLayout() { @@ -15,10 +35,87 @@ } override fun initData() { - + weakReferenceHandler = WeakReferenceHandler(callback) + workOrderViewModel = ViewModelProvider(this).get(WorkOrderViewModel::class.java) + //默认加载第一页 + obtainWorkOrderList() } override fun initEvent() { + orderInHandleLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainWorkOrderList() + } + orderInHandleLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainWorkOrderList() + } + workOrderViewModel.orderListModel.observe(this, { + if (it.code == 200) { + val dataRows = it.data?.rows + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows!! + orderInHandleLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows?.size == 0) { + "到底了,别拉了".show() + } + dataBeans.addAll(dataRows!!) + orderInHandleLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows!! + } + } + weakReferenceHandler.sendEmptyMessage(2022061502) + } + }) + + workOrderViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(requireContext()) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show() + } + } + }) + } + + private fun obtainWorkOrderList() { + workOrderViewModel.obtainOrderListByState("2", pageIndex) + } + + private val callback = Handler.Callback { + if (it.what == 2022061502) { + if (isRefresh || isLoadMore) { + inHandleAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("真不错,您已经处理完所有工单") { + pageIndex = 1 + obtainWorkOrderList() + } + } else { + emptyView!!.hide() + inHandleAdapter = OrderInHandleAdapter(requireContext(), dataBeans) + orderInHandleView!!.layoutManager = LinearLayoutManager(requireContext()) + orderInHandleView!!.adapter = inHandleAdapter + } + } + } + true } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt deleted file mode 100644 index 9aa1742..0000000 --- a/app/src/main/java/com/casic/qd/smartwell/adapter/CompletedOrderAdapter.kt +++ /dev/null @@ -1,137 +0,0 @@ -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 -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton - -class CompletedOrderAdapter( - 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 - ): CompletedOrderAdapter.ItemViewHolder { - return ItemViewHolder( - layoutInflater.inflate( - R.layout.item_order_completed_recycleview, parent, false - ) - ) - } - - override fun getItemCount(): Int = dataRows.size - - override fun onBindViewHolder( - holder: CompletedOrderAdapter.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() - } - } - - holder.transferView.setChangeAlphaWhenPress(true) - holder.transferView.setOnClickListener { - listener!!.onTransferViewClicked(position) - } - } - } - - 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}接单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.confirmJobTime, - String.format("${rowsBean.confirmJobPerson}确认工单") - ) - ) - expandableList.add( - ExpandableDataModel( - rowsBean.handleJobTime, - String.format("${rowsBean.handleJobPerson}完成工单") - ) - ) - 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) - var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) - } - - private var listener: OnItemClickListener? = null - - interface OnItemClickListener { - fun onClicked(position: Int) - - fun onTransferViewClicked(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/OrderCompletedAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt new file mode 100644 index 0000000..f36c15d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderCompletedAdapter.kt @@ -0,0 +1,137 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderCompletedAdapter( + 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 + ): OrderCompletedAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_completed_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderCompletedAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.handleJobTime, + String.format("${rowsBean.handleJobPerson}完成工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderInHandleAdapter.kt b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt new file mode 100644 index 0000000..a7fcfa8 --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/adapter/OrderInHandleAdapter.kt @@ -0,0 +1,130 @@ +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 +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton + +class OrderInHandleAdapter( + 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 + ): OrderInHandleAdapter.ItemViewHolder { + return ItemViewHolder( + layoutInflater.inflate( + R.layout.item_order_in_handle_recycleview, parent, false + ) + ) + } + + override fun getItemCount(): Int = dataRows.size + + override fun onBindViewHolder( + holder: OrderInHandleAdapter.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() + } + } + + holder.transferView.setChangeAlphaWhenPress(true) + holder.transferView.setOnClickListener { + listener!!.onTransferViewClicked(position) + } + } + } + + 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}接单") + ) + ) + expandableList.add( + ExpandableDataModel( + rowsBean.confirmJobTime, + String.format("${rowsBean.confirmJobPerson}确认工单") + ) + ) + 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) + var transferView: QMUIRoundButton = view.findViewById(R.id.transferView) + } + + private var listener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onClicked(position: Int) + + fun onTransferViewClicked(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/OrderCompletedFragment.kt b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt index 5e74d5d..41ad8e7 100644 --- a/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt +++ b/app/src/main/java/com/casic/qd/smartwell/fragment/OrderCompletedFragment.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.casic.qd.smartwell.R -import com.casic.qd.smartwell.adapter.CompletedOrderAdapter +import com.casic.qd.smartwell.adapter.OrderCompletedAdapter import com.casic.qd.smartwell.base.BaseFragment import com.casic.qd.smartwell.extensions.show import com.casic.qd.smartwell.extensions.showEmptyPage @@ -22,7 +22,7 @@ private lateinit var weakReferenceHandler: WeakReferenceHandler private lateinit var workOrderViewModel: WorkOrderViewModel - private lateinit var completedAdapter: CompletedOrderAdapter + private lateinit var completedAdapter: OrderCompletedAdapter private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -110,11 +110,11 @@ } } else { emptyView!!.hide() - completedAdapter = CompletedOrderAdapter(requireContext(), dataBeans) + completedAdapter = OrderCompletedAdapter(requireContext(), dataBeans) orderCompletedView!!.layoutManager = LinearLayoutManager(requireContext()) orderCompletedView!!.adapter = completedAdapter completedAdapter.setOnItemClickListener(object : - CompletedOrderAdapter.OnItemClickListener { + OrderCompletedAdapter.OnItemClickListener { override fun onClicked(position: Int) { val jobId = dataBeans[position].jobId.toString() if (jobId.isBlank()) { 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 bed71bb..e9d260d 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 @@ -1,13 +1,33 @@ 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.OrderInHandleAdapter 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 com.casic.qd.smartwell.widgets.TimeLineBottomSheet +import kotlinx.android.synthetic.main.fragment_order_in_handle.* +import kotlinx.android.synthetic.main.include_empty_view.* /** * 工单-处理中 * */ class OrderInHandleFragment : BaseFragment() { + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var workOrderViewModel: WorkOrderViewModel + private lateinit var inHandleAdapter: OrderInHandleAdapter + 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_in_handle override fun setupTopBarLayout() { @@ -15,10 +35,87 @@ } override fun initData() { - + weakReferenceHandler = WeakReferenceHandler(callback) + workOrderViewModel = ViewModelProvider(this).get(WorkOrderViewModel::class.java) + //默认加载第一页 + obtainWorkOrderList() } override fun initEvent() { + orderInHandleLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainWorkOrderList() + } + orderInHandleLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainWorkOrderList() + } + workOrderViewModel.orderListModel.observe(this, { + if (it.code == 200) { + val dataRows = it.data?.rows + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows!! + orderInHandleLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows?.size == 0) { + "到底了,别拉了".show() + } + dataBeans.addAll(dataRows!!) + orderInHandleLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows!! + } + } + weakReferenceHandler.sendEmptyMessage(2022061502) + } + }) + + workOrderViewModel.detailModel.observe(this, { + if (it.code == 200) { + val orderDetail = it.data!![0] + val orderFlow = orderDetail.flow!! + if (orderFlow.size != 0) { + TimeLineBottomSheet.Builder().setContext(requireContext()) + .setFlowItems(orderFlow).build().show() + } else { + "抱歉,无法查到该工单的流转记录".show() + } + } + }) + } + + private fun obtainWorkOrderList() { + workOrderViewModel.obtainOrderListByState("2", pageIndex) + } + + private val callback = Handler.Callback { + if (it.what == 2022061502) { + if (isRefresh || isLoadMore) { + inHandleAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("真不错,您已经处理完所有工单") { + pageIndex = 1 + obtainWorkOrderList() + } + } else { + emptyView!!.hide() + inHandleAdapter = OrderInHandleAdapter(requireContext(), dataBeans) + orderInHandleView!!.layoutManager = LinearLayoutManager(requireContext()) + orderInHandleView!!.adapter = inHandleAdapter + } + } + } + true } } \ No newline at end of file diff --git a/app/src/main/res/layout/item_order_in_handle_recycleview.xml b/app/src/main/res/layout/item_order_in_handle_recycleview.xml new file mode 100644 index 0000000..822d7f4 --- /dev/null +++ b/app/src/main/res/layout/item_order_in_handle_recycleview.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file