diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02160cd..07519f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,8 @@
+
+
+
+
()
}
equipmentLayout.setOnRefreshListener {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02160cd..07519f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,8 @@
+
+
()
}
equipmentLayout.setOnRefreshListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
new file mode 100644
index 0000000..b053e85
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
@@ -0,0 +1,36 @@
+package com.casic.xz.meterage.view.search
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import kotlinx.android.synthetic.main.activity_search_equipment.*
+
+/**
+ * 搜索仪器设备
+ * */
+class SearchEquipmentActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ navigatePageTo(inputView.text.toString())
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02160cd..07519f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,8 @@
+
+
()
}
equipmentLayout.setOnRefreshListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
new file mode 100644
index 0000000..b053e85
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
@@ -0,0 +1,36 @@
+package com.casic.xz.meterage.view.search
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import kotlinx.android.synthetic.main.activity_search_equipment.*
+
+/**
+ * 搜索仪器设备
+ * */
+class SearchEquipmentActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ navigatePageTo(inputView.text.toString())
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
new file mode 100644
index 0000000..5ee960d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.view.search
+
+import android.os.Handler
+import android.view.View
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.EquipmentListAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.EquipmentListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EquipmentDetailActivity
+import com.casic.xz.meterage.vm.EquipmentViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_search_equipment_reasult.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+class SearchEquipmentResultActivity : KotlinBaseActivity() {
+
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var equipmentViewModel: EquipmentViewModel
+ private lateinit var equipmentListAdapter: EquipmentListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ param = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java]
+ equipmentViewModel.equipmentResult.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ equipmentLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ equipmentLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023020802)
+ }
+ })
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ equipmentLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ equipmentLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getEquipmentListByPage()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment_reasult
+
+ override fun observeRequestState() {
+ equipmentViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ //TODO 查询条件待定
+ private fun getEquipmentListByPage() {
+ equipmentViewModel.getEquipmentList(
+ "",
+ param,
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023020802 -> {
+ if (isRefresh || isLoadMore) {
+ equipmentListAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("没有查询到符合条件的设备数据") {
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ equipmentListAdapter = EquipmentListAdapter(this, dataBeans)
+ equipmentRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ equipmentRecyclerView.adapter = equipmentListAdapter
+ equipmentListAdapter.setOnItemClickListener(object :
+ EquipmentListAdapter.OnItemClickListener {
+ override fun onItemClicked(position: Int) {
+ val rowsModel = dataBeans[position]
+ navigatePageTo(rowsModel.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02160cd..07519f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,8 @@
+
+
()
}
equipmentLayout.setOnRefreshListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
new file mode 100644
index 0000000..b053e85
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
@@ -0,0 +1,36 @@
+package com.casic.xz.meterage.view.search
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import kotlinx.android.synthetic.main.activity_search_equipment.*
+
+/**
+ * 搜索仪器设备
+ * */
+class SearchEquipmentActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ navigatePageTo(inputView.text.toString())
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
new file mode 100644
index 0000000..5ee960d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.view.search
+
+import android.os.Handler
+import android.view.View
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.EquipmentListAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.EquipmentListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EquipmentDetailActivity
+import com.casic.xz.meterage.vm.EquipmentViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_search_equipment_reasult.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+class SearchEquipmentResultActivity : KotlinBaseActivity() {
+
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var equipmentViewModel: EquipmentViewModel
+ private lateinit var equipmentListAdapter: EquipmentListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ param = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java]
+ equipmentViewModel.equipmentResult.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ equipmentLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ equipmentLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023020802)
+ }
+ })
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ equipmentLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ equipmentLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getEquipmentListByPage()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment_reasult
+
+ override fun observeRequestState() {
+ equipmentViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ //TODO 查询条件待定
+ private fun getEquipmentListByPage() {
+ equipmentViewModel.getEquipmentList(
+ "",
+ param,
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023020802 -> {
+ if (isRefresh || isLoadMore) {
+ equipmentListAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("没有查询到符合条件的设备数据") {
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ equipmentListAdapter = EquipmentListAdapter(this, dataBeans)
+ equipmentRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ equipmentRecyclerView.adapter = equipmentListAdapter
+ equipmentListAdapter.setOnItemClickListener(object :
+ EquipmentListAdapter.OnItemClickListener {
+ override fun onItemClicked(position: Int) {
+ val rowsModel = dataBeans[position]
+ navigatePageTo(rowsModel.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search_equipment.xml b/app/src/main/res/layout/activity_search_equipment.xml
new file mode 100644
index 0000000..a960801
--- /dev/null
+++ b/app/src/main/res/layout/activity_search_equipment.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02160cd..07519f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,8 @@
+
+
()
}
equipmentLayout.setOnRefreshListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
new file mode 100644
index 0000000..b053e85
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
@@ -0,0 +1,36 @@
+package com.casic.xz.meterage.view.search
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import kotlinx.android.synthetic.main.activity_search_equipment.*
+
+/**
+ * 搜索仪器设备
+ * */
+class SearchEquipmentActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ navigatePageTo(inputView.text.toString())
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
new file mode 100644
index 0000000..5ee960d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.view.search
+
+import android.os.Handler
+import android.view.View
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.EquipmentListAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.EquipmentListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EquipmentDetailActivity
+import com.casic.xz.meterage.vm.EquipmentViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_search_equipment_reasult.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+class SearchEquipmentResultActivity : KotlinBaseActivity() {
+
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var equipmentViewModel: EquipmentViewModel
+ private lateinit var equipmentListAdapter: EquipmentListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ param = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java]
+ equipmentViewModel.equipmentResult.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ equipmentLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ equipmentLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023020802)
+ }
+ })
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ equipmentLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ equipmentLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getEquipmentListByPage()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment_reasult
+
+ override fun observeRequestState() {
+ equipmentViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ //TODO 查询条件待定
+ private fun getEquipmentListByPage() {
+ equipmentViewModel.getEquipmentList(
+ "",
+ param,
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023020802 -> {
+ if (isRefresh || isLoadMore) {
+ equipmentListAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("没有查询到符合条件的设备数据") {
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ equipmentListAdapter = EquipmentListAdapter(this, dataBeans)
+ equipmentRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ equipmentRecyclerView.adapter = equipmentListAdapter
+ equipmentListAdapter.setOnItemClickListener(object :
+ EquipmentListAdapter.OnItemClickListener {
+ override fun onItemClicked(position: Int) {
+ val rowsModel = dataBeans[position]
+ navigatePageTo(rowsModel.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search_equipment.xml b/app/src/main/res/layout/activity_search_equipment.xml
new file mode 100644
index 0000000..a960801
--- /dev/null
+++ b/app/src/main/res/layout/activity_search_equipment.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search_equipment_reasult.xml b/app/src/main/res/layout/activity_search_equipment_reasult.xml
new file mode 100644
index 0000000..9136ce5
--- /dev/null
+++ b/app/src/main/res/layout/activity_search_equipment_reasult.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02160cd..07519f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,8 @@
+
+
()
}
equipmentLayout.setOnRefreshListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
new file mode 100644
index 0000000..b053e85
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentActivity.kt
@@ -0,0 +1,36 @@
+package com.casic.xz.meterage.view.search
+
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import kotlinx.android.synthetic.main.activity_search_equipment.*
+
+/**
+ * 搜索仪器设备
+ * */
+class SearchEquipmentActivity : KotlinBaseActivity() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ navigatePageTo(inputView.text.toString())
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
new file mode 100644
index 0000000..5ee960d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.view.search
+
+import android.os.Handler
+import android.view.View
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.EquipmentListAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.EquipmentListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EquipmentDetailActivity
+import com.casic.xz.meterage.vm.EquipmentViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_search_equipment_reasult.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+class SearchEquipmentResultActivity : KotlinBaseActivity() {
+
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var equipmentViewModel: EquipmentViewModel
+ private lateinit var equipmentListAdapter: EquipmentListAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ param = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ equipmentViewModel = ViewModelProvider(this)[EquipmentViewModel::class.java]
+ equipmentViewModel.equipmentResult.observe(this, {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ equipmentLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ equipmentLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023020802)
+ }
+ })
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ equipmentLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ equipmentLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getEquipmentListByPage()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_equipment_reasult
+
+ override fun observeRequestState() {
+ equipmentViewModel.loadState.observe(this, {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ })
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+
+ //TODO 查询条件待定
+ private fun getEquipmentListByPage() {
+ equipmentViewModel.getEquipmentList(
+ "",
+ param,
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023020802 -> {
+ if (isRefresh || isLoadMore) {
+ equipmentListAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("没有查询到符合条件的设备数据") {
+ pageIndex = 1
+ getEquipmentListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ equipmentListAdapter = EquipmentListAdapter(this, dataBeans)
+ equipmentRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ equipmentRecyclerView.adapter = equipmentListAdapter
+ equipmentListAdapter.setOnItemClickListener(object :
+ EquipmentListAdapter.OnItemClickListener {
+ override fun onItemClicked(position: Int) {
+ val rowsModel = dataBeans[position]
+ navigatePageTo(rowsModel.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search_equipment.xml b/app/src/main/res/layout/activity_search_equipment.xml
new file mode 100644
index 0000000..a960801
--- /dev/null
+++ b/app/src/main/res/layout/activity_search_equipment.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search_equipment_reasult.xml b/app/src/main/res/layout/activity_search_equipment_reasult.xml
new file mode 100644
index 0000000..9136ce5
--- /dev/null
+++ b/app/src/main/res/layout/activity_search_equipment_reasult.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index e1ab759..fb1b2bd 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -38,6 +38,7 @@
android:layout_weight="1"
android:background="@null"
android:hint="查询样品、业务"
+ android:singleLine="true"
android:textColor="@color/mainTextColor"
android:textColorHint="@color/hintColor"
android:textSize="@dimen/sp_16" />