diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6923679..8b7c719 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + + () } homeView.deviceDataLayout.setOnClickListener { - +// requireContext().navigatePageTo() } homeView.orderDataLayout.setOnClickListener { - + requireContext().navigatePageTo() } homeView.alarmDataLayout.setOnClickListener { - +// requireContext().navigatePageTo() } return homeView } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6923679..8b7c719 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -43,6 +43,7 @@ + () } homeView.deviceDataLayout.setOnClickListener { - +// requireContext().navigatePageTo() } homeView.orderDataLayout.setOnClickListener { - + requireContext().navigatePageTo() } homeView.alarmDataLayout.setOnClickListener { - +// requireContext().navigatePageTo() } return homeView } diff --git a/app/src/main/java/com/casic/app/smartwell/sanxi/view/WorkOrderManageActivity.kt b/app/src/main/java/com/casic/app/smartwell/sanxi/view/WorkOrderManageActivity.kt new file mode 100644 index 0000000..50d3abe --- /dev/null +++ b/app/src/main/java/com/casic/app/smartwell/sanxi/view/WorkOrderManageActivity.kt @@ -0,0 +1,276 @@ +package com.casic.app.smartwell.sanxi.view + +import android.annotation.SuppressLint +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.view.View +import android.widget.Button +import android.widget.EditText +import android.widget.TextView +import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.LinearLayoutManager +import com.casic.app.smartwell.sanxi.R +import com.casic.app.smartwell.sanxi.adapter.WorkOrderListAdapter +import com.casic.app.smartwell.sanxi.base.BaseActivity +import com.casic.app.smartwell.sanxi.extensions.navigatePageTo +import com.casic.app.smartwell.sanxi.extensions.show +import com.casic.app.smartwell.sanxi.extensions.showEmptyPage +import com.casic.app.smartwell.sanxi.model.WorkOrderListModel +import com.casic.app.smartwell.sanxi.utils.Constant +import com.casic.app.smartwell.sanxi.utils.SaveKeyValues +import com.casic.app.smartwell.sanxi.vm.AlarmViewModel +import com.casic.app.smartwell.sanxi.vm.WorkOrderViewModel +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet +import kotlinx.android.synthetic.main.activity_work_order.* +import kotlinx.android.synthetic.main.include_base_title.titleView +import kotlinx.android.synthetic.main.include_empty_view.* +import java.lang.ref.WeakReference + +/** + * 未完工单管理页面 + * */ +class WorkOrderManageActivity : BaseActivity(), DrawerLayout.DrawerListener { + + private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var workOrderViewModel: WorkOrderViewModel + private lateinit var alarmViewModel: AlarmViewModel + private lateinit var workOrderListAdapter: WorkOrderListAdapter + private var dataBeans: MutableList = ArrayList() + private var keywords = "" + private var alarmType = "" + private var alarmContent = "" + private var jobStatus = "" + private var pageIndex = 1 + private var isRefresh = false + private var isLoadMore = false + + override fun initLayoutView(): Int = R.layout.activity_work_order + + override fun setupTopBarLayout() { + titleView.text = "工单管理" + rightOptionView.setOnClickListener { + if (rightDrawerLayout.isDrawerOpen(GravityCompat.END)) { + rightDrawerLayout.closeDrawer(GravityCompat.END) + } else { + rightDrawerLayout.openDrawer(GravityCompat.END) + } + } + rightDrawerLayout.addDrawerListener(this) + } + + override fun initData() { + weakReferenceHandler = WeakReferenceHandler(this) + workOrderViewModel = ViewModelProvider(this).get(WorkOrderViewModel::class.java) + alarmViewModel = ViewModelProvider(this).get(AlarmViewModel::class.java) + //默认加载所有数据 + obtainWorkOrderListByPage() + } + + override fun initEvent() { + resultRefreshLayout.setOnRefreshListener { + isRefresh = true + //刷新之后页码重置 + pageIndex = 1 + obtainWorkOrderListByPage() + } + resultRefreshLayout.setOnLoadMoreListener { + isLoadMore = true + pageIndex++ + obtainWorkOrderListByPage() + } + + workOrderViewModel.orderListModel.observe(this, { + if (it.code == 200) { + val dataRows = it.data?.rows + when { + isRefresh -> { + dataBeans.clear() + dataBeans = dataRows!! + resultRefreshLayout.finishRefresh() + isRefresh = false + } + isLoadMore -> { + if (dataRows?.size == 0) { + "到底了,别拉了".show() + } + dataBeans.addAll(dataRows!!) + resultRefreshLayout.finishLoadMore() + isLoadMore = false + } + else -> { + dataBeans = dataRows!! + } + } + weakReferenceHandler.sendEmptyMessage(2022060801) + } + }) + + alarmViewModel.typeModel.observe(this, { + if (it.code == 200) { + val sheetBuilder = QMUIBottomSheet.BottomListSheetBuilder(this) + sheetBuilder.setTitle("告警类型") + it.data?.forEach { dataBean -> + sheetBuilder.addItem(dataBean.name) + } + sheetBuilder.setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, position, tag -> + alarmTypeView.text = tag + alarmType = it.data!![position].value.toString() + + //告警类型变了之后需要清空告警内容 + alarmContentView.text = "" + dialog.dismiss() + }.build().show() + } + }) + + alarmViewModel.contentModel.observe(this, { + if (it.code == 200) { + val sheetBuilder = QMUIBottomSheet.BottomListSheetBuilder(this) + sheetBuilder.setTitle("告警内容") + it.data?.list?.forEach { dataBean -> + sheetBuilder.addItem(dataBean.name) + } + sheetBuilder.setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, position, tag -> + alarmContentView.text = tag + alarmContent = it.data!!.list!![position].value.toString() + + dialog.dismiss() + }.build().show() + } + }) + + workOrderViewModel.orderStatusModel.observe(this, { + if (it.code == 200) { + val sheetBuilder = QMUIBottomSheet.BottomListSheetBuilder(this) + sheetBuilder.setTitle("工单状态") + it.data?.forEach { dataBean -> + sheetBuilder.addItem(dataBean.name) + } + sheetBuilder.setGravityCenter(true) + .setOnSheetItemClickListener { dialog, _, position, tag -> + orderStateView.text = tag + jobStatus = it.data!![position].value.toString() + + dialog.dismiss() + }.build().show() + } + }) + } + + private fun obtainWorkOrderListByPage() { + workOrderViewModel.obtainWorkOrderListByState( + keywords, alarmType, alarmContent, jobStatus, pageIndex + ) + } + + override fun onDrawerSlide(drawerView: View, slideOffset: Float) { + + } + + override fun onDrawerOpened(drawerView: View) { + //只要打开抽屉,pageIndex就默认等于1 + this.pageIndex = 1 + + val wellCodeView = drawerView.findViewById(R.id.wellCodeView) + val alarmTypeView = drawerView.findViewById(R.id.alarmTypeView) + val alarmContentView = drawerView.findViewById(R.id.alarmContentView) + val orderStateView = drawerView.findViewById(R.id.orderStateView) + val clearButton = drawerView.findViewById