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 0000000..3d0581b Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_water_yield.png differ diff --git a/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_arrow_down_gray.png b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_arrow_down_gray.png new file mode 100644 index 0000000..e6b8d30 Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_arrow_down_gray.png differ diff --git a/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_search_gray.png b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_search_gray.png new file mode 100644 index 0000000..6e21d1f Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_search_gray.png differ diff --git a/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe.xml b/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe.xml new file mode 100644 index 0000000..d45f0e8 --- /dev/null +++ b/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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