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