From d65f72e3c459f35ddcce6adaae07688f072baeed Mon Sep 17 00:00:00 2001
From: lvmeng <848755140@qq.com>
Date: Tue, 23 Sep 2025 19:52:50 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B6=8C=E6=B0=B4=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../app/src/main/AndroidManifest.xml | 1 +
.../adapter/WaterYieldObserveAdapter.kt | 60 +++++++++
.../entity/water/WaterYieldObserveEntity.kt | 38 ++++++
.../ui/home/adapter/HomeMenuAdapter.kt | 4 +
.../ui/home/bean/HomeMenuBean.kt | 12 +-
.../ui/home/fragment/HomeFragment.kt | 66 ++++------
.../ui/mining/activity/MiningActivity.kt | 10 +-
.../wateryield/WaterYieldObserveActivity.kt | 104 ++++++++++++++++
.../java/com/zmkg/coaloperation/utils/Ext.kt | 38 ++++++
.../res/drawable-xxhdpi/ic_water_yield.png | Bin 0 -> 1484 bytes
.../drawable-xxxhdpi/ic_arrow_down_gray.png | Bin 0 -> 1988 bytes
.../res/drawable-xxxhdpi/ic_search_gray.png | Bin 0 -> 3888 bytes
.../layout/activity_water_yield_observe.xml | 114 ++++++++++++++++++
.../app/src/main/res/layout/fragment_home.xml | 3 +-
.../layout/list_item_water_yield_observe.xml | 86 +++++++++++++
.../app/src/main/res/values/colors.xml | 1 +
16 files changed, 478 insertions(+), 59 deletions(-)
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldObserveAdapter.kt
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/water/WaterYieldObserveEntity.kt
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveActivity.kt
create mode 100644 coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_water_yield.png
create mode 100644 coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_arrow_down_gray.png
create mode 100644 coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_search_gray.png
create mode 100644 coalMiningApp/app/src/main/res/layout/activity_water_yield_observe.xml
create mode 100644 coalMiningApp/app/src/main/res/layout/list_item_water_yield_observe.xml
diff --git a/coalMiningApp/app/src/main/AndroidManifest.xml b/coalMiningApp/app/src/main/AndroidManifest.xml
index bf707e3..b3dfae6 100644
--- a/coalMiningApp/app/src/main/AndroidManifest.xml
+++ b/coalMiningApp/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldObserveAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldObserveAdapter.kt
new file mode 100644
index 0000000..de30e48
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldObserveAdapter.kt
@@ -0,0 +1,60 @@
+package com.zmkg.coaloperation.adapter
+
+import android.graphics.drawable.GradientDrawable
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.viewholder.BaseViewHolder
+import com.zmkg.coaloperation.R
+import com.zmkg.coaloperation.databinding.ListItemWaterYieldObserveBinding
+import com.zmkg.coaloperation.db.entity.water.WaterYieldObserveEntity
+import com.zmkg.coaloperation.utils.useShapeSetBackground
+import androidx.core.graphics.toColorInt
+import androidx.core.view.updateLayoutParams
+import androidx.recyclerview.widget.RecyclerView
+import com.zmkg.coaloperation.utils.dp
+
+class WaterYieldObserveAdapter(list: MutableList):
+ BaseQuickAdapter(R.layout.list_item_water_yield_observe, list) {
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
+ val binding = ListItemWaterYieldObserveBinding.inflate(
+ LayoutInflater.from(context), parent, false
+ )
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ override fun convert(
+ holder: VH,
+ item: WaterYieldObserveEntity
+ ) {
+ holder.binding.let {
+ it.tvObservePoint.text = item.observePoint
+ it.tvObserveTime.text = item.observeTime
+ it.tvObserveState.run {
+ var stateColor = ""
+ if (item.observeState == "1") {
+ text = "已观测"
+ stateColor = "#3ECD88"
+ } else {
+ text = "未观测"
+ stateColor = "#803398"
+ }
+ useShapeSetBackground(
+ shape = GradientDrawable.RECTANGLE,
+ cornerRadius = 20F.dp,
+ solidColor = stateColor.toColorInt(),
+ )
+ }
+ it.root.updateLayoutParams {
+ bottomMargin = if (holder.layoutPosition == data.size - 1) 80.dp else 3.dp
+ }
+ }
+ }
+
+ inner class VH(var binding: ListItemWaterYieldObserveBinding): BaseViewHolder(binding.root)
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/water/WaterYieldObserveEntity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/water/WaterYieldObserveEntity.kt
new file mode 100644
index 0000000..34c360e
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entity/water/WaterYieldObserveEntity.kt
@@ -0,0 +1,38 @@
+package com.zmkg.coaloperation.db.entity.water
+
+import android.os.Parcelable
+import androidx.room.Entity
+import androidx.room.Ignore
+import androidx.room.PrimaryKey
+import com.zmkg.coaloperation.utils.DateTimeUtil
+import kotlinx.parcelize.Parcelize
+import java.time.LocalDateTime
+
+@Parcelize
+@Entity(tableName = "water_yield_observe")
+data class WaterYieldObserveEntity(
+ @PrimaryKey
+ var observeId: Long = 0,
+ var observePoint: String = "",
+ var observeTime: String = "",
+ var observeState:String = "0",
+
+ /**
+ * 创建时间
+ */
+ var createTime: String? = "",
+
+ /**
+ * 更新时间
+ */
+ var updateTime: String? = DateTimeUtil.formatDateTime(LocalDateTime.now()),
+
+ /**
+ * 数据状态:0-默认值,原始数据,1-已修改数据
+ */
+ var dataState: String = "0"
+
+) : Parcelable {
+ @Ignore
+ constructor() : this(observeId = 0)
+}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/adapter/HomeMenuAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/adapter/HomeMenuAdapter.kt
index d37903c..1338b51 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/adapter/HomeMenuAdapter.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/adapter/HomeMenuAdapter.kt
@@ -1,5 +1,6 @@
package com.zmkg.coaloperation.ui.home.adapter
+import android.widget.Toast
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R
@@ -30,5 +31,8 @@ class HomeMenuAdapter :
R.id.img,
getMenuTabImg(item.index!!, holder.itemViewType)
)
+ holder.itemView.setOnClickListener {
+ item.onClick()
+ }
}
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/bean/HomeMenuBean.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/bean/HomeMenuBean.kt
index 8a845fc..9ccc738 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/bean/HomeMenuBean.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/bean/HomeMenuBean.kt
@@ -3,13 +3,13 @@ package com.zmkg.coaloperation.ui.home.bean
import com.chad.library.adapter.base.entity.MultiItemEntity
-class HomeMenuBean : MultiItemEntity {
- var name: String? = null
- var index: Int? = null
- var type: Int? = null // 0: 前4个(左右布局),1: 后4个(上下布局)
-
+data class HomeMenuBean(
+ var name: String? = null,
+ var index: Int? = null,
+ var type: Int? = null, // 0: 前4个(左右布局),1: 后4个(上下布局)
+ var onClick:()->Unit = {}
+) : MultiItemEntity {
override val itemType: Int
get() = type!!
-
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt
index 6f91def..d804910 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt
@@ -1,40 +1,32 @@
package com.zmkg.coaloperation.ui.home.fragment
import android.os.Bundle
-import android.text.TextUtils
-import android.util.Log
import android.view.View
import androidx.fragment.app.Fragment
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.GridLayoutManager
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.listener.OnItemClickListener
-import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.adapter.common.ViewPagerAdapter
import com.zmkg.coaloperation.base.BaseVMBFragment
import com.zmkg.coaloperation.databinding.FragmentHomeBinding
-import com.zmkg.coaloperation.local.DataStoreManager
import com.zmkg.coaloperation.superfuntion.addItemTouchCallback
import com.zmkg.coaloperation.superfuntion.init
import com.zmkg.coaloperation.superfuntion.onPageChangeCallback
-import com.zmkg.coaloperation.superfuntion.toJson
import com.zmkg.coaloperation.ui.home.adapter.HomeMenuAdapter
import com.zmkg.coaloperation.ui.home.bean.HomeMenuBean
import com.zmkg.coaloperation.ui.home.viewmodel.HomeViewModel
+import com.zmkg.coaloperation.ui.wateryield.WaterYieldObserveActivity
import com.zmkg.coaloperation.utils.DictUtils
-import kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.launch
class HomeFragment :
BaseVMBFragment(R.layout.fragment_home),
OnItemClickListener {
- private val homeMenuAdapter: HomeMenuAdapter by lazy { HomeMenuAdapter() }
+ private val homeMenuAdapter: HomeMenuAdapter by lazy {
+ HomeMenuAdapter()
+ }
override fun initView(root: View?, savedInstanceState: Bundle?) {
mBinding.apply {
@@ -48,7 +40,7 @@ class HomeFragment :
rvList.adapter = homeMenuAdapter
rvList.addItemTouchCallback {
resetItemTypes(homeMenuAdapter.data)
- DataStoreManager.setHomeData(homeMenuAdapter.data.toJson())
+// DataStoreManager.setHomeData(homeMenuAdapter.data.toJson())
homeMenuAdapter.notifyDataSetChanged()
}
@@ -84,39 +76,27 @@ class HomeFragment :
DictUtils.initData()
// mViewModel.getWaterLedgerData()
- val titleNameList = mutableListOf(
- "涌水量观测",
- "导线测量",
- "瓦斯巡检",
- "防灭火检查",
- "通风巡检",
- "地质编录",
- "水文地质编录",
- "隐蔽致灾",
- "地物查询"
+ val menuList = mutableListOf(
+ HomeMenuBean(index = 1, name = "涌水量观测", type = 0, onClick = {
+ toActivity(WaterYieldObserveActivity::class.java)
+ }),
+ HomeMenuBean(index = 2, name = "导线测量", type = 0),
+ HomeMenuBean(index = 3, name = "瓦斯巡检", type = 0),
+ HomeMenuBean(index = 4, name = "防灭火检查", type = 0),
+ HomeMenuBean(index = 5, name = "通风巡检", type = 1),
+ HomeMenuBean(index = 6, name = "地质编录", type = 1),
+ HomeMenuBean(index = 7, name = "水文地质编录", type = 1),
+ HomeMenuBean(index = 8, name = "隐蔽致灾", type = 1),
+ HomeMenuBean(index = 9, name = "地物查询", type = 1)
)
- var mutableListOf = mutableListOf()
- val homeData = DataStoreManager.getHomeData()
- if (TextUtils.isEmpty(homeData)) {
+// val homeData = DataStoreManager.getHomeData()
+// if (!TextUtils.isEmpty(homeData)) {
+// val listType = object : TypeToken?>() {}.type
+// mutableListOf = Gson().fromJson(homeData, listType)
+// }
- titleNameList.forEachIndexed { index, s ->
- val homeMenuBean = HomeMenuBean()
- homeMenuBean.name = s
- homeMenuBean.index = index + 1
- if (index < 4) {
- homeMenuBean.type = 0
- } else {
- homeMenuBean.type = 1
- }
- mutableListOf.add(homeMenuBean)
- }
- } else {
- val listType = object : TypeToken?>() {}.getType()
- mutableListOf = Gson().fromJson(homeData, listType)
- }
-
- homeMenuAdapter.setNewInstance(mutableListOf)
+ homeMenuAdapter.setNewInstance(menuList)
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt
index 1243b61..0d543a5 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt
@@ -171,15 +171,7 @@ class MiningActivity :
@SuppressLint("NotifyDataSetChanged")
private fun getFaceRecord(position: Int) {
- workingFaceList[position].records?.let {
- if (it.isNotEmpty()) {
- val recordAdapter = getRecordAdapter(position)
- recordAdapter.apply {
- notifyDataSetChanged()
- }
- workingFaceAdapter.notifyItemChanged(position)
- }
- }
+ workingFaceAdapter.notifyItemChanged(position)
// val surfaceId = workingFaceList[position].surfaceId
// workingFaceRecordViewModel.getEntityList(surfaceId) { recordEntities ->
// if (recordEntities.isNullOrEmpty()) {
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveActivity.kt
new file mode 100644
index 0000000..129a1da
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveActivity.kt
@@ -0,0 +1,104 @@
+package com.zmkg.coaloperation.ui.wateryield
+
+import android.os.Bundle
+import android.view.View
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.zmkg.coaloperation.R
+import com.zmkg.coaloperation.adapter.WaterYieldObserveAdapter
+import com.zmkg.coaloperation.base.BaseVMBActivity
+import com.zmkg.coaloperation.base.viewmodel.TestViewModel
+import com.zmkg.coaloperation.bean.WorkOption
+import com.zmkg.coaloperation.databinding.ActivityWaterYieldObserveBinding
+import com.zmkg.coaloperation.db.entity.water.WaterYieldObserveEntity
+import com.zmkg.coaloperation.utils.PickerUtil
+
+/**
+ * 关于我们
+ */
+class WaterYieldObserveActivity :
+ BaseVMBActivity(R.layout.activity_water_yield_observe) {
+
+ val observeList: MutableList = mutableListOf()
+ val observeAdapter by lazy {
+ WaterYieldObserveAdapter(observeList).apply {
+ setOnItemClickListener { adapter, view, position ->
+
+ }
+ }
+ }
+
+ override fun initView(savedInstanceState: Bundle?) {
+ mBinding.toolbarLay.title = "涌水量观测"
+ mBinding.toolbarLay.rightText = "添加观测点"
+ mBinding.toolbarLay.titleTvRight.setOnClickListener {
+
+ }
+ initTestObserveData()
+ mBinding.rvWaterYield.let {
+ it.layoutManager = LinearLayoutManager(this)
+ it.adapter = observeAdapter
+ }
+ }
+
+ private fun initTestObserveData() {
+ observeList.run {
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点A", observeTime = "2024-09-01 15:15:00", observeState = "0"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点B", observeTime = "2024-10-09 10:36:00", observeState = "0"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点C", observeTime = "2024-11-13 16:56:00", observeState = "0"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点D", observeTime = "2024-12-19 12:13:00", observeState = "0"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点E", observeTime = "2025-01-09 08:36:00", observeState = "1"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点F", observeTime = "2025-02-20 18:20:00", observeState = "1"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点G", observeTime = "2025-03-09 11:25:00", observeState = "1"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点H", observeTime = "2025-04-30 13:30:00", observeState = "1"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点I", observeTime = "2025-05-06 07:55:00", observeState = "1"
+ ))
+ add(WaterYieldObserveEntity(
+ observeId = 1, observePoint = "观测点J", observeTime = "2025-06-08 14:13:00", observeState = "1"
+ ))
+ }
+ }
+
+ override fun initData() {
+ }
+
+ override fun bindEvent() {
+ val list = mutableListOf()
+ list.add(WorkOption("1", "观测点A"))
+ list.add(WorkOption("2", "观测点B"))
+ list.add(WorkOption("3", "观测点C"))
+ list.add(WorkOption("4", "观测点D"))
+ list.add(WorkOption("5", "观测点E"))
+ list.add(WorkOption("6", "观测点F"))
+ list.add(WorkOption("7", "观测点G"))
+ list.add(WorkOption("8", "观测点H"))
+ mBinding.llSelectObservePoint.setOnClickListener {
+ PickerUtil.showOptionPicker(this, "请选择观测点", list) { option ->
+ mBinding.tvObservePoint.let {
+ it.text = option.name
+ it.tag = option.id
+ }
+ }
+ }
+ }
+
+ override fun processClick(v: View?) {
+ }
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt
index 0f0b5b8..4af5820 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt
@@ -2,6 +2,10 @@ package com.zmkg.coaloperation.utils
import android.annotation.SuppressLint
import android.content.SharedPreferences
+import android.content.res.Resources
+import android.graphics.Color
+import android.graphics.drawable.GradientDrawable
+import android.util.TypedValue
import android.view.View
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -87,5 +91,39 @@ fun String.formatDecimalString(): String {
fun Double.roundedOneDecimalPlace(): Double {
return BigDecimal(this).setScale(1, RoundingMode.HALF_UP).toDouble()
}
+val Float.sp: Float
+ get() = TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_SP,
+ this,
+ Resources.getSystem().displayMetrics
+ )
+
+val Int.sp: Int
+ get() = this.toFloat().sp.toInt()
+val Float.dp: Float
+ get() = TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ this,
+ Resources.getSystem().displayMetrics
+ )
+
+val Int.dp: Int
+ get() = this.toFloat().dp.toInt()
+
+fun View.useShapeSetBackground(
+ shape: Int = GradientDrawable.RECTANGLE,
+ cornerRadius: Float = 0F,
+ solidColor: Int = Color.TRANSPARENT,
+ strokeWidth: Int = 0,
+ strokeColor: Int = Color.TRANSPARENT,
+) {
+ val shape = GradientDrawable().also {
+ it.shape = shape
+ it.cornerRadius = cornerRadius
+ it.setColor(solidColor)
+ it.setStroke(strokeWidth, strokeColor)
+ }
+ this.background = shape
+}
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_water_yield.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_water_yield.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d0581bcdef5413a4dd01976ab8d6f35959939e9
GIT binary patch
literal 1484
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/fragment_home.xml b/coalMiningApp/app/src/main/res/layout/fragment_home.xml
index 32cf39a..6f6b2be 100644
--- a/coalMiningApp/app/src/main/res/layout/fragment_home.xml
+++ b/coalMiningApp/app/src/main/res/layout/fragment_home.xml
@@ -14,6 +14,7 @@
@@ -52,7 +53,7 @@
android:textSize="14sp" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/values/colors.xml b/coalMiningApp/app/src/main/res/values/colors.xml
index dc08a74..db66659 100644
--- a/coalMiningApp/app/src/main/res/values/colors.xml
+++ b/coalMiningApp/app/src/main/res/values/colors.xml
@@ -26,6 +26,7 @@
#FFFFFF
#000000
#5B6783
+ #6A6F87
#0C0D0E
#17181C