diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.All
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.All)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "查询仪器设备、样品"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
+ weakReferenceHandler.sendEmptyMessage(2023031106)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.All
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.All)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "查询仪器设备、样品"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
+ weakReferenceHandler.sendEmptyMessage(2023031106)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
new file mode 100644
index 0000000..3f60353
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
@@ -0,0 +1,185 @@
+package com.casic.xz.meterage.view.search
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.AppMemoryCache
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.GlobalSearchViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+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_global_reasult.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class SearchGlobalResultActivity : KotlinBaseActivity() {
+
+ private val context: Context = this@SearchGlobalResultActivity
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchViewModel: GlobalSearchViewModel
+ private lateinit var globalResultAdapter: NormalRecyclerAdapter
+ 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)
+ searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java]
+ searchViewModel.globalSearchResult.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ searchGlobalLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ searchGlobalLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023031401)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ searchGlobalLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ searchGlobalLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getGlobalSearchResult()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ private fun getGlobalSearchResult() {
+ if (param.length < 4) {
+ //输入参数长度小于4,默认查名称
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ } else {
+ if (AppMemoryCache.prefixCode.contains(param.substring(0, 4))) {
+ searchViewModel.getGlobalSearchResult(
+ "", "", param, "", "", pageIndex
+ )
+ } else {
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ }
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global_reasult
+
+ override fun observeRequestState() {
+ searchViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023031401 -> {
+ if (isRefresh || isLoadMore) {
+ globalResultAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无数据") {
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+ } else {
+ emptyView!!.hide()
+ globalResultAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_global_search_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: GlobalResultModel.DataModel.RowsModel
+ ) {
+ if (item.assetTypeName == "样品") {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.purple_500.convertColor(context)
+ )
+ }
+
+ viewHolder.setText(R.id.itemNameView, item.assetName)
+ .setText(R.id.itemTypeView, item.assetTypeName)
+ .setText(R.id.codeView, "编号:${item.assetNo}")
+ }
+ }
+ searchGlobalRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ searchGlobalRecyclerView.adapter = globalResultAdapter
+ globalResultAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: GlobalResultModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(item.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.All
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.All)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "查询仪器设备、样品"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
+ weakReferenceHandler.sendEmptyMessage(2023031106)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
new file mode 100644
index 0000000..3f60353
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
@@ -0,0 +1,185 @@
+package com.casic.xz.meterage.view.search
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.AppMemoryCache
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.GlobalSearchViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+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_global_reasult.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class SearchGlobalResultActivity : KotlinBaseActivity() {
+
+ private val context: Context = this@SearchGlobalResultActivity
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchViewModel: GlobalSearchViewModel
+ private lateinit var globalResultAdapter: NormalRecyclerAdapter
+ 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)
+ searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java]
+ searchViewModel.globalSearchResult.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ searchGlobalLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ searchGlobalLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023031401)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ searchGlobalLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ searchGlobalLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getGlobalSearchResult()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ private fun getGlobalSearchResult() {
+ if (param.length < 4) {
+ //输入参数长度小于4,默认查名称
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ } else {
+ if (AppMemoryCache.prefixCode.contains(param.substring(0, 4))) {
+ searchViewModel.getGlobalSearchResult(
+ "", "", param, "", "", pageIndex
+ )
+ } else {
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ }
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global_reasult
+
+ override fun observeRequestState() {
+ searchViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023031401 -> {
+ if (isRefresh || isLoadMore) {
+ globalResultAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无数据") {
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+ } else {
+ emptyView!!.hide()
+ globalResultAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_global_search_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: GlobalResultModel.DataModel.RowsModel
+ ) {
+ if (item.assetTypeName == "样品") {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.purple_500.convertColor(context)
+ )
+ }
+
+ viewHolder.setText(R.id.itemNameView, item.assetName)
+ .setText(R.id.itemTypeView, item.assetTypeName)
+ .setText(R.id.codeView, "编号:${item.assetNo}")
+ }
+ }
+ searchGlobalRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ searchGlobalRecyclerView.adapter = globalResultAdapter
+ globalResultAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: GlobalResultModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(item.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
new file mode 100644
index 0000000..f9a4f4b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.vm;
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 全局搜索 VM
+ * */
+class GlobalSearchViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+
+ val globalSearchResult = MutableLiveData()
+
+ fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getGlobalSearchResult(
+ id, assetName, assetNo, assetType, assetTypeName, offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ globalSearchResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.All
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.All)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "查询仪器设备、样品"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
+ weakReferenceHandler.sendEmptyMessage(2023031106)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
new file mode 100644
index 0000000..3f60353
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
@@ -0,0 +1,185 @@
+package com.casic.xz.meterage.view.search
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.AppMemoryCache
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.GlobalSearchViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+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_global_reasult.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class SearchGlobalResultActivity : KotlinBaseActivity() {
+
+ private val context: Context = this@SearchGlobalResultActivity
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchViewModel: GlobalSearchViewModel
+ private lateinit var globalResultAdapter: NormalRecyclerAdapter
+ 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)
+ searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java]
+ searchViewModel.globalSearchResult.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ searchGlobalLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ searchGlobalLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023031401)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ searchGlobalLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ searchGlobalLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getGlobalSearchResult()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ private fun getGlobalSearchResult() {
+ if (param.length < 4) {
+ //输入参数长度小于4,默认查名称
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ } else {
+ if (AppMemoryCache.prefixCode.contains(param.substring(0, 4))) {
+ searchViewModel.getGlobalSearchResult(
+ "", "", param, "", "", pageIndex
+ )
+ } else {
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ }
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global_reasult
+
+ override fun observeRequestState() {
+ searchViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023031401 -> {
+ if (isRefresh || isLoadMore) {
+ globalResultAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无数据") {
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+ } else {
+ emptyView!!.hide()
+ globalResultAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_global_search_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: GlobalResultModel.DataModel.RowsModel
+ ) {
+ if (item.assetTypeName == "样品") {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.purple_500.convertColor(context)
+ )
+ }
+
+ viewHolder.setText(R.id.itemNameView, item.assetName)
+ .setText(R.id.itemTypeView, item.assetTypeName)
+ .setText(R.id.codeView, "编号:${item.assetNo}")
+ }
+ }
+ searchGlobalRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ searchGlobalRecyclerView.adapter = globalResultAdapter
+ globalResultAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: GlobalResultModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(item.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
new file mode 100644
index 0000000..f9a4f4b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.vm;
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 全局搜索 VM
+ * */
+class GlobalSearchViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+
+ val globalSearchResult = MutableLiveData()
+
+ fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getGlobalSearchResult(
+ id, assetName, assetNo, assetType, assetTypeName, offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ globalSearchResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt
deleted file mode 100644
index d095ee3..0000000
--- a/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.casic.xz.meterage.vm;
-
-import androidx.lifecycle.MutableLiveData
-import com.casic.xz.meterage.base.BaseApplication
-import com.casic.xz.meterage.extensions.separateResponseCode
-import com.casic.xz.meterage.extensions.toErrorMessage
-import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-import com.pengxh.kt.lite.extensions.launch
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.BaseViewModel
-import com.pengxh.kt.lite.vm.LoadState
-
-/**
- * 计量人员 VM
- * */
-class MeterageStaffViewModel : BaseViewModel() {
-
- private val gson by lazy { Gson() }
- val staffList = MutableLiveData()
-
- fun getStaffList(id: String) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.getStaffList(id)
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- staffList.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show(BaseApplication.get())
- }
- }, {
- loadState.value = LoadState.Fail
- it.cause.toString().show(BaseApplication.get())
- it.printStackTrace()
- })
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.All
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.All)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "查询仪器设备、样品"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
+ weakReferenceHandler.sendEmptyMessage(2023031106)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
new file mode 100644
index 0000000..3f60353
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
@@ -0,0 +1,185 @@
+package com.casic.xz.meterage.view.search
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.AppMemoryCache
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.GlobalSearchViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+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_global_reasult.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class SearchGlobalResultActivity : KotlinBaseActivity() {
+
+ private val context: Context = this@SearchGlobalResultActivity
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchViewModel: GlobalSearchViewModel
+ private lateinit var globalResultAdapter: NormalRecyclerAdapter
+ 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)
+ searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java]
+ searchViewModel.globalSearchResult.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ searchGlobalLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ searchGlobalLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023031401)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ searchGlobalLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ searchGlobalLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getGlobalSearchResult()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ private fun getGlobalSearchResult() {
+ if (param.length < 4) {
+ //输入参数长度小于4,默认查名称
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ } else {
+ if (AppMemoryCache.prefixCode.contains(param.substring(0, 4))) {
+ searchViewModel.getGlobalSearchResult(
+ "", "", param, "", "", pageIndex
+ )
+ } else {
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ }
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global_reasult
+
+ override fun observeRequestState() {
+ searchViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023031401 -> {
+ if (isRefresh || isLoadMore) {
+ globalResultAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无数据") {
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+ } else {
+ emptyView!!.hide()
+ globalResultAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_global_search_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: GlobalResultModel.DataModel.RowsModel
+ ) {
+ if (item.assetTypeName == "样品") {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.purple_500.convertColor(context)
+ )
+ }
+
+ viewHolder.setText(R.id.itemNameView, item.assetName)
+ .setText(R.id.itemTypeView, item.assetTypeName)
+ .setText(R.id.codeView, "编号:${item.assetNo}")
+ }
+ }
+ searchGlobalRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ searchGlobalRecyclerView.adapter = globalResultAdapter
+ globalResultAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: GlobalResultModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(item.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
new file mode 100644
index 0000000..f9a4f4b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.vm;
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 全局搜索 VM
+ * */
+class GlobalSearchViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+
+ val globalSearchResult = MutableLiveData()
+
+ fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getGlobalSearchResult(
+ id, assetName, assetNo, assetType, assetTypeName, offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ globalSearchResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt
deleted file mode 100644
index d095ee3..0000000
--- a/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.casic.xz.meterage.vm;
-
-import androidx.lifecycle.MutableLiveData
-import com.casic.xz.meterage.base.BaseApplication
-import com.casic.xz.meterage.extensions.separateResponseCode
-import com.casic.xz.meterage.extensions.toErrorMessage
-import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-import com.pengxh.kt.lite.extensions.launch
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.BaseViewModel
-import com.pengxh.kt.lite.vm.LoadState
-
-/**
- * 计量人员 VM
- * */
-class MeterageStaffViewModel : BaseViewModel() {
-
- private val gson by lazy { Gson() }
- val staffList = MutableLiveData()
-
- fun getStaffList(id: String) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.getStaffList(id)
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- staffList.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show(BaseApplication.get())
- }
- }, {
- loadState.value = LoadState.Fail
- it.cause.toString().show(BaseApplication.get())
- it.printStackTrace()
- })
-}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt
index 2f34672..b1bad75 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt
@@ -7,6 +7,7 @@
import com.casic.xz.meterage.model.ActionResultModel
import com.casic.xz.meterage.model.MeterageTrainDetailModel
import com.casic.xz.meterage.model.MeterageTrainListModel
+import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
@@ -23,6 +24,7 @@
private val gson by lazy { Gson() }
val meterageTrainList = MutableLiveData()
val meterageTrainDetail = MutableLiveData()
+ val staffList = MutableLiveData()
val signInResult = MutableLiveData()
fun getMeterageTrainList(
@@ -89,6 +91,25 @@
it.printStackTrace()
})
+ fun getStaffList(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getStaffList(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ staffList.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+
fun signIn(staffId: String, planId: String) = launch({
loadState.value = LoadState.Loading
val response = RetrofitServiceManager.signIn(staffId, planId)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.All
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.All)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "查询仪器设备、样品"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
+ weakReferenceHandler.sendEmptyMessage(2023031106)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
new file mode 100644
index 0000000..3f60353
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalResultActivity.kt
@@ -0,0 +1,185 @@
+package com.casic.xz.meterage.view.search
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.AppMemoryCache
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.GlobalSearchViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
+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_global_reasult.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class SearchGlobalResultActivity : KotlinBaseActivity() {
+
+ private val context: Context = this@SearchGlobalResultActivity
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var searchViewModel: GlobalSearchViewModel
+ private lateinit var globalResultAdapter: NormalRecyclerAdapter
+ 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)
+ searchViewModel = ViewModelProvider(this)[GlobalSearchViewModel::class.java]
+ searchViewModel.globalSearchResult.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ searchGlobalLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ searchGlobalLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023031401)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ searchGlobalLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ searchGlobalLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getGlobalSearchResult()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+
+ private fun getGlobalSearchResult() {
+ if (param.length < 4) {
+ //输入参数长度小于4,默认查名称
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ } else {
+ if (AppMemoryCache.prefixCode.contains(param.substring(0, 4))) {
+ searchViewModel.getGlobalSearchResult(
+ "", "", param, "", "", pageIndex
+ )
+ } else {
+ searchViewModel.getGlobalSearchResult(
+ "", param, "", "", "", pageIndex
+ )
+ }
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_search_global_reasult
+
+ override fun observeRequestState() {
+ searchViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023031401 -> {
+ if (isRefresh || isLoadMore) {
+ globalResultAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无数据") {
+ pageIndex = 1
+ getGlobalSearchResult()
+ }
+ } else {
+ emptyView!!.hide()
+ globalResultAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_global_search_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: GlobalResultModel.DataModel.RowsModel
+ ) {
+ if (item.assetTypeName == "样品") {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setBackgroundColor(
+ R.id.itemTypeView, R.color.purple_500.convertColor(context)
+ )
+ }
+
+ viewHolder.setText(R.id.itemNameView, item.assetName)
+ .setText(R.id.itemTypeView, item.assetTypeName)
+ .setText(R.id.codeView, "编号:${item.assetNo}")
+ }
+ }
+ searchGlobalRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ searchGlobalRecyclerView.adapter = globalResultAdapter
+ globalResultAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: GlobalResultModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(item.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
new file mode 100644
index 0000000..f9a4f4b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/GlobalSearchViewModel.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.vm;
+
+import androidx.lifecycle.MutableLiveData
+import com.casic.xz.meterage.base.BaseApplication
+import com.casic.xz.meterage.extensions.separateResponseCode
+import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.GlobalResultModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 全局搜索 VM
+ * */
+class GlobalSearchViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+
+ val globalSearchResult = MutableLiveData()
+
+ fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getGlobalSearchResult(
+ id, assetName, assetNo, assetType, assetTypeName, offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ globalSearchResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt
deleted file mode 100644
index d095ee3..0000000
--- a/app/src/main/java/com/casic/xz/meterage/vm/MeterageStaffViewModel.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.casic.xz.meterage.vm;
-
-import androidx.lifecycle.MutableLiveData
-import com.casic.xz.meterage.base.BaseApplication
-import com.casic.xz.meterage.extensions.separateResponseCode
-import com.casic.xz.meterage.extensions.toErrorMessage
-import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-import com.pengxh.kt.lite.extensions.launch
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.BaseViewModel
-import com.pengxh.kt.lite.vm.LoadState
-
-/**
- * 计量人员 VM
- * */
-class MeterageStaffViewModel : BaseViewModel() {
-
- private val gson by lazy { Gson() }
- val staffList = MutableLiveData()
-
- fun getStaffList(id: String) = launch({
- loadState.value = LoadState.Loading
- val response = RetrofitServiceManager.getStaffList(id)
- val responseCode = response.separateResponseCode()
- if (responseCode == 200) {
- loadState.value = LoadState.Success
- staffList.value = gson.fromJson(
- response, object : TypeToken() {}.type
- )
- } else {
- loadState.value = LoadState.Fail
- response.toErrorMessage().show(BaseApplication.get())
- }
- }, {
- loadState.value = LoadState.Fail
- it.cause.toString().show(BaseApplication.get())
- it.printStackTrace()
- })
-}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt
index 2f34672..b1bad75 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/MeterageTrainViewModel.kt
@@ -7,6 +7,7 @@
import com.casic.xz.meterage.model.ActionResultModel
import com.casic.xz.meterage.model.MeterageTrainDetailModel
import com.casic.xz.meterage.model.MeterageTrainListModel
+import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
@@ -23,6 +24,7 @@
private val gson by lazy { Gson() }
val meterageTrainList = MutableLiveData()
val meterageTrainDetail = MutableLiveData()
+ val staffList = MutableLiveData()
val signInResult = MutableLiveData()
fun getMeterageTrainList(
@@ -89,6 +91,25 @@
it.printStackTrace()
})
+ fun getStaffList(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getStaffList(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ staffList.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
+
fun signIn(staffId: String, planId: String) = launch({
loadState.value = LoadState.Loading
val response = RetrofitServiceManager.signIn(staffId, planId)
diff --git a/app/src/main/res/layout/activity_search_all.xml b/app/src/main/res/layout/activity_search_all.xml
deleted file mode 100644
index 93ed590..0000000
--- a/app/src/main/res/layout/activity_search_all.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 099eb12..dfce544 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index ae7f5e4..4c93023 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -20,7 +20,7 @@
import com.casic.xz.meterage.utils.QrConfigCreator
import com.casic.xz.meterage.view.home.*
import com.casic.xz.meterage.view.notice.NoticeListActivity
-import com.casic.xz.meterage.view.search.SearchAllActivity
+import com.casic.xz.meterage.view.search.SearchGlobalActivity
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.casic.xz.meterage.vm.NoticeViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
@@ -286,7 +286,7 @@
override fun initEvent() {
searchBar.setOnClickListener {
- requireContext().navigatePageTo()
+ requireContext().navigatePageTo()
}
scanCodeView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index 70f9da3..f42d017 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -4,7 +4,7 @@
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.StaffListModel
-import com.casic.xz.meterage.vm.MeterageStaffViewModel
+import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
@@ -12,12 +12,12 @@
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
- private lateinit var staffViewModel: MeterageStaffViewModel
+ private lateinit var trainViewModel: MeterageTrainViewModel
override fun initData() {
- staffViewModel = ViewModelProvider(this)[MeterageStaffViewModel::class.java]
- staffViewModel.getStaffList(id)
- staffViewModel.staffList.observe(this) {
+ trainViewModel = ViewModelProvider(this)[MeterageTrainViewModel::class.java]
+ trainViewModel.getStaffList(id)
+ trainViewModel.staffList.observe(this) {
if (it.code == 200) {
val staffAdapter =
object : NormalRecyclerAdapter(
diff --git a/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
new file mode 100644
index 0000000..c67f743
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/GlobalResultModel.java
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class GlobalResultModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String assetName;
+ private String assetNo;
+ private String assetType;
+ private String assetTypeName;
+ private String id;
+
+ public String getAssetName() {
+ return assetName;
+ }
+
+ public void setAssetName(String assetName) {
+ this.assetName = assetName;
+ }
+
+ public String getAssetNo() {
+ return assetNo;
+ }
+
+ public void setAssetNo(String assetNo) {
+ this.assetNo = assetNo;
+ }
+
+ public String getAssetType() {
+ return assetType;
+ }
+
+ public void setAssetType(String assetType) {
+ this.assetType = assetType;
+ }
+
+ public String getAssetTypeName() {
+ return assetTypeName;
+ }
+
+ public void setAssetTypeName(String assetTypeName) {
+ this.assetTypeName = assetTypeName;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 37bfd4e..98f7eae 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -384,4 +384,15 @@
@Header("token") token: String,
@Body requestBody: RequestBody
): String
+
+ /**
+ * 全局搜索
+ */
+ @POST("/meter/assets/queryEquipment")
+ suspend fun getGlobalSearchResult(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index ea5d73d..269f5ec 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -857,4 +857,35 @@
)
return api.submit(AuthenticationHelper.token!!, requestBody)
}
+
+ /**
+ * 全局搜索
+ */
+ suspend fun getGlobalSearchResult(
+ id: String,
+ assetName: String,
+ assetNo: String,
+ assetType: String,
+ assetTypeName: String,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ param.addProperty("assetName", assetName)
+ param.addProperty("assetNo", assetNo)
+ param.addProperty("assetType", assetType)
+ param.addProperty("assetTypeName", assetTypeName)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getGlobalSearchResult(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
deleted file mode 100644
index 97202b9..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllActivity.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.casic.xz.meterage.view.search
-
-import android.view.LayoutInflater
-import android.view.View
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.bean.SearchHistoryBean
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.DataBaseManager
-import com.casic.xz.meterage.utils.SearchType
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.navigatePageTo
-import com.pengxh.kt.lite.utils.WeakReferenceHandler
-import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-import com.zhy.view.flowlayout.FlowLayout
-import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_all.*
-import kotlinx.android.synthetic.main.include_search_input_title.*
-
-class SearchAllActivity : KotlinBaseActivity() {
-
- private lateinit var inflater: LayoutInflater
- private lateinit var weakReferenceHandler: WeakReferenceHandler
- private lateinit var historyAdapter: TagAdapter
- private var dataBeans: MutableList = ArrayList()
- private var isRefresh = false
-
- override fun initData() {
- inflater = LayoutInflater.from(this)
- weakReferenceHandler = WeakReferenceHandler {
- if (it.what == 2023031106) {
- if (isRefresh) {
- historyAdapter.notifyDataChanged()
- } else {
- historyAdapter = object : TagAdapter(dataBeans) {
- override fun getView(
- parent: FlowLayout?, position: Int, bean: SearchHistoryBean
- ): View {
- val tagView = inflater.inflate(
- R.layout.item_search_rv_l, tagFlowLayout, false
- ) as QMUIRoundButton
- tagView.text = bean.keywords
- return tagView
- }
- }
- tagFlowLayout.adapter = historyAdapter
- tagFlowLayout.setOnTagClickListener { _, position, _ ->
- inputView.setText(dataBeans[position].keywords)
- navigatePageTo(inputView.text.toString())
- true
- }
- }
- }
- true
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- searchTextView.setOnClickListener {
- if (!inputView.text.isNullOrBlank()) {
- DataBaseManager.get.addSearchHistory(
- inputView.text.toString(), SearchType.All
- )
- }
-
- navigatePageTo(inputView.text.toString())
- }
-
- deleteHistoryView.setOnClickListener {
- AlertControlDialog.Builder()
- .setContext(this)
- .setTitle("提示")
- .setMessage("确定将所有搜索记录删除?")
- .setNegativeButton("取消")
- .setPositiveButton("确定")
- .setOnDialogButtonClickListener(object :
- AlertControlDialog.OnDialogButtonClickListener {
- override fun onCancelClick() {
-
- }
-
- override fun onConfirmClick() {
- DataBaseManager.get.deleteHistoryByType(SearchType.All)
- dataBeans.clear()
- historyAdapter.notifyDataChanged()
- }
- }).build().show()
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- inputView.hint = "查询仪器设备、样品"
- }
-
- override fun onResume() {
- super.onResume()
- dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.All)
- weakReferenceHandler.sendEmptyMessage(2023031106)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
deleted file mode 100644
index adbb570..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchAllResultActivity.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-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.utils.Constant
-import kotlinx.android.synthetic.main.activity_search_all_reasult.*
-import kotlinx.android.synthetic.main.include_search_title.*
-
-class SearchAllResultActivity : KotlinBaseActivity() {
-
- private lateinit var param: String
-
- override fun initData() {
- param = intent.getStringExtra(Constant.INTENT_PARAM)!!
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_search_all_reasult
-
- override fun observeRequestState() {
-
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "查询结果"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
new file mode 100644
index 0000000..d18d0d2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchGlobalActivity.kt
@@ -0,0 +1,110 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_global.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+class SearchGlobalActivity : KotlinBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023031106) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter