diff --git a/coalMiningApp/app/src/main/AndroidManifest.xml b/coalMiningApp/app/src/main/AndroidManifest.xml index c92b113..25dbde0 100644 --- a/coalMiningApp/app/src/main/AndroidManifest.xml +++ b/coalMiningApp/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldRecordAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldRecordAdapter.kt new file mode 100644 index 0000000..c927a13 --- /dev/null +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WaterYieldRecordAdapter.kt @@ -0,0 +1,129 @@ +package com.zmkg.coaloperation.adapter + +import android.graphics.Color +import android.view.Gravity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.LinearLayout +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.view.updateLayoutParams +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.zmkg.coaloperation.R +import com.zmkg.coaloperation.bean.WaterYieldRecordItem +import com.zmkg.coaloperation.databinding.ListItemWaterYieldRecordBinding +import com.zmkg.coaloperation.databinding.ListItemWaterYieldRecordInnerBinding +import com.zmkg.coaloperation.utils.gone +import com.zmkg.coaloperation.utils.visible +import androidx.core.graphics.toColorInt +import com.zmkg.coaloperation.utils.dp + +class WaterYieldRecordAdapter(data: MutableList) : + BaseQuickAdapter( + R.layout.list_item_water_yield_record, + data + ) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH { + val binding = ListItemWaterYieldRecordBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + return VH(binding).also { + bindViewClickListener(it, viewType) + } + } + + override fun convert( + holder: VH, + item: WaterYieldRecordItem + ) { + loadRecordData(holder.binding, item) + val position = holder.layoutPosition + holder.binding.divider.run { + if (position == data.size - 1) gone() else visible() + } + } + + private fun loadRecordData( + binding: ListItemWaterYieldRecordBinding, + item: WaterYieldRecordItem + ) { + binding.run { + if (item.isHeader) { + tvItemName.let { + it.textSize = 16F + it.setTextColor(Color.WHITE) + it.gravity = Gravity.CENTER + it.updateLayoutParams { + width = ConstraintLayout.LayoutParams.MATCH_PARENT + } + } + verticalDivider.gone() + tvItemValue.gone() + } else { + tvItemName.let { + it.textSize = 14F + it.setTextColor("#6A6F87".toColorInt()) + it.gravity = Gravity.CENTER_VERTICAL + it.updateLayoutParams { + width = 80.dp + } + } + verticalDivider.visible() + tvItemValue.visible() + } + tvItemName.text = item.name + if (item.items.isNullOrEmpty()) { +// tvItemName.updateLayoutParams { height = ScreenUtil.dp2px(50f) } + tvItemValue.let { + it.visibility = View.VISIBLE + it.text = item.value + } + llContainer.visibility = View.GONE + } else { +// tvItemName.updateLayoutParams { height = ScreenUtil.dp2px(60f) } + tvItemValue.visibility = View.GONE + llContainer.let { + it.visibility = View.VISIBLE + it.removeAllViews() + addChildToContainer(it, item.items!!) + } + } + } + } + + private fun loadItemData( + binding: ListItemWaterYieldRecordInnerBinding, + isLatest: Boolean, + item: WaterYieldRecordItem + ) { + binding.tvItemName.text = "${item.name}:" + binding.tvItemValue.text = item.value + binding.divider.run { + if (isLatest) gone() else visible() + } + } + + private fun addChildToContainer( + container: LinearLayout, + list: MutableList + ) { + list.forEachIndexed { index, item -> + val itemBinding = ListItemWaterYieldRecordInnerBinding.inflate( + LayoutInflater.from(context), + container, + false + ) + itemBinding.run { + loadItemData(itemBinding, index == list.size - 1, item) + container.addView(root) + } + } + } + + + inner class VH(var binding: ListItemWaterYieldRecordBinding) : BaseViewHolder(binding.root) +} \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelWorkingItem.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelWorkingItem.kt index bd720eb..3105529 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelWorkingItem.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/TunnelWorkingItem.kt @@ -8,7 +8,7 @@ data class TunnelWorkingItem( var name: String? = "", var value: String? = "", var items: MutableList? = null, - var pageType:Int = 0 + var pageType: Int = 0 ) data class RockItem( @@ -18,12 +18,26 @@ data class RockItem( ) data class WorkOption( - var id:String, + var id: String, var name: String ) +data class Work3LevelOption( + var id: String = "", + var name: String = "", + + var list: List? = null +) + data class TunnelSubmitData( - var faceList: MutableList?=null, - var recordList: MutableList?=null, - var lithologyList: MutableList?=null + var faceList: MutableList? = null, + var recordList: MutableList? = null, + var lithologyList: MutableList? = null +) + +data class WaterYieldRecordItem( + var name: String? = "", + var value: String? = "", + var isHeader: Boolean = false, + var items: MutableList? = null, ) diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/BuoyMethodFragment.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/BuoyMethodFragment.kt index ce1db57..543d492 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/BuoyMethodFragment.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/BuoyMethodFragment.kt @@ -60,6 +60,7 @@ class BuoyMethodFragment : mBinding.rvBuoyTop.let { it.layoutManager = LinearLayoutManager(it.context) it.adapter = buoyTopAdapter + it.requestDisallowInterceptTouchEvent(true) } buoyBottomList.run { add(BuoyBottomItem(name = "水沟长(m)")) @@ -67,6 +68,13 @@ class BuoyMethodFragment : mBinding.rvBuoyBottom.let { it.layoutManager = LinearLayoutManager(it.context) it.adapter = buoyBottomAdapter + it.requestDisallowInterceptTouchEvent(true) + } + mBinding.btnRecord.setOnClickListener { + toActivity(WaterYieldObserveRecordActivity::class.java) + } + mBinding.btnSubmit.setOnClickListener { + } } diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/VolumeMethodFragment.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/VolumeMethodFragment.kt index 1c01f9f..ec0d379 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/VolumeMethodFragment.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/VolumeMethodFragment.kt @@ -10,6 +10,12 @@ import com.zmkg.coaloperation.databinding.FragmentVolumeMethodBinding class VolumeMethodFragment: BaseVMBFragment(R.layout.fragment_volume_method) { override fun initView(root: View?, savedInstanceState: Bundle?) { + mBinding.btnRecord.setOnClickListener { + toActivity(WaterYieldObserveRecordActivity::class.java) + } + mBinding.btnSubmit.setOnClickListener { + + } } override fun bindEvent() { diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveRecordActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveRecordActivity.kt new file mode 100644 index 0000000..1e036b7 --- /dev/null +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/wateryield/WaterYieldObserveRecordActivity.kt @@ -0,0 +1,105 @@ +package com.zmkg.coaloperation.ui.wateryield + +import android.os.Bundle +import android.view.View +import android.widget.RelativeLayout +import androidx.core.view.marginEnd +import androidx.core.view.updateLayoutParams +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import com.zmkg.coaloperation.R +import com.zmkg.coaloperation.adapter.WaterYieldRecordAdapter +import com.zmkg.coaloperation.base.BaseVMBActivity +import com.zmkg.coaloperation.base.viewmodel.TestViewModel +import com.zmkg.coaloperation.bean.WaterYieldRecordItem +import com.zmkg.coaloperation.databinding.ActivityWaterYieldObserveRecordBinding +import com.zmkg.coaloperation.utils.dp +import com.zmkg.coaloperation.utils.visible +import org.checkerframework.checker.units.qual.h + +/** + * 观测历史记录页面 + */ +class WaterYieldObserveRecordActivity : + BaseVMBActivity(R.layout.activity_water_yield_observe_record) { + + private val recordList: MutableList = mutableListOf() + private val recordAdapter by lazy { + WaterYieldRecordAdapter(recordList) + } + + override fun initView(savedInstanceState: Bundle?) { + mBinding.toolbarLay.title = "历史记录" +// mBinding.toolbarLay.rightText = "添加观测点" + mBinding.toolbarLay.titleIvRight.run { + updateLayoutParams { + rightMargin = 10.dp + topMargin = 6.dp + width = 36.dp + height = 36.dp + } + setImageResource(R.drawable.ic_func_edit) + mBinding.toolbarLay.rightImageSrc = drawable + visible() + setOnClickListener { + //toActivity(WaterYieldAddObservePointActivity::class.java) + } + } + mBinding.toolbarLay.titleIvRight2.run { + updateLayoutParams { + topMargin = 6.dp + width = 36.dp + height = 36.dp + } + setImageResource(R.drawable.ic_func_delete) + visible() + setOnClickListener { + //toActivity(WaterYieldAddObservePointActivity::class.java) + } + } + mBinding.rvObserveRecord.let { + it.layoutManager = LinearLayoutManager(this) + it.adapter = recordAdapter + } + initBuoyMethodData() + recordList.run { + add(WaterYieldRecordItem(name = "水文观测原始记录", isHeader = true)) + add(WaterYieldRecordItem(name = "观测时间", value = "2025-09-12 16:40:00")) + add(WaterYieldRecordItem(name = "观测地点", value = "观测点011")) + add(WaterYieldRecordItem(name = "观测人", value = "方一强")) + add(WaterYieldRecordItem(name = "观测方法", value = "浮标法")) + add(WaterYieldRecordItem(name = "观测参数", items = subList)) + add(WaterYieldRecordItem(name = "观测结果", value = "1178400m³/h")) + add(WaterYieldRecordItem(name = "备注", value = "")) + } + recordAdapter.notifyDataSetChanged() + } + + + override fun initData() { + } + + override fun bindEvent() { + + } + + override fun processClick(v: View?) { + } + + val subList = mutableListOf() + fun initBuoyMethodData() { + subList.run { + add(WaterYieldRecordItem(name = "断面1水沟宽", value = "15m")) + add(WaterYieldRecordItem(name = "断面1水沟深", value = "15m")) + add(WaterYieldRecordItem(name = "断面2水沟宽", value = "15m")) + add(WaterYieldRecordItem(name = "断面2水沟深", value = "15m")) + add(WaterYieldRecordItem(name = "水沟长", value = "15m")) + add(WaterYieldRecordItem(name = "断面1到断面2水流速度", value = "3m/s")) + } + } + + fun initVolumeMethodData() { + + } + +} \ No newline at end of file diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt index f6568f2..6ef6aa1 100644 --- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt +++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt @@ -2,8 +2,11 @@ package com.zmkg.coaloperation.utils import android.content.Context import android.graphics.Color +import androidx.core.content.ContextCompat import com.bigkoo.pickerview.builder.OptionsPickerBuilder import com.bigkoo.pickerview.builder.TimePickerBuilder +import com.zmkg.coaloperation.R +import com.zmkg.coaloperation.bean.Work3LevelOption import com.zmkg.coaloperation.bean.WorkOption import java.text.SimpleDateFormat import java.util.Calendar @@ -42,10 +45,37 @@ object PickerUtil { } // 三级联动选择器示例 +// fun show3LevelOptionPicker(context: Context, title:String, options: List, action: (Work3LevelOption, Work3LevelOption, Work3LevelOption) -> Unit) { +// OptionsPickerBuilder(context) { idx1, idx2, idx3, _ -> +// val option1 = options[idx1] +// val option2 = option1.list!![idx2] +// val option3 = option2.list!![idx3] +// action(option1, option2, option3) +// }.apply { +// setTitleText(title) +// setContentTextSize(18) +// setOutSideCancelable(true) +// }.build().apply { +// val items1: MutableList = mutableListOf() +// val items2: MutableList> = mutableListOf() +// val items3: MutableList>> = mutableListOf() +// options.forEach { +// items1.add(it.name) +// +// } +// setPicker( options.map { it.name } , null, null) +// show() +// } +// } + + fun showOptionPicker(context: Context, title:String, options: List, action: (WorkOption) -> Unit) { OptionsPickerBuilder(context) { opt1, _, _, _ -> action(options[opt1]) }.apply { +// setOutSideColor(ContextCompat.getColor(context, R.color.black_bg)) +// setDividerColor(ContextCompat.getColor(context,R.color.divider)) + setTitleText(title) setContentTextSize(18) setOutSideCancelable(true) @@ -54,6 +84,7 @@ object PickerUtil { show() } } + fun showTextPicker(context: Context, title:String, options: List, action: (String) -> Unit) { OptionsPickerBuilder(context) { opt1, _, _, _ -> action(options[opt1]) diff --git a/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_func_delete.png b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_func_delete.png new file mode 100644 index 0000000..95a0a43 Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_func_delete.png differ diff --git a/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_func_edit.png b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_func_edit.png new file mode 100644 index 0000000..813ecd7 Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxxhdpi/ic_func_edit.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 index 57f3177..7dc4222 100644 --- a/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe.xml +++ b/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe.xml @@ -175,8 +175,7 @@ + android:layout_height="match_parent"/> diff --git a/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe_record.xml b/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe_record.xml new file mode 100644 index 0000000..4539d2c --- /dev/null +++ b/coalMiningApp/app/src/main/res/layout/activity_water_yield_observe_record.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coalMiningApp/app/src/main/res/layout/fragment_buoy_method.xml b/coalMiningApp/app/src/main/res/layout/fragment_buoy_method.xml index 46f7433..0ea4d64 100644 --- a/coalMiningApp/app/src/main/res/layout/fragment_buoy_method.xml +++ b/coalMiningApp/app/src/main/res/layout/fragment_buoy_method.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools"> - - + + +