diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/fragment/GjcQueryStorageFragment.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/fragment/GjcQueryStorageFragment.kt index b984385..a75d7b8 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/fragment/GjcQueryStorageFragment.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/fragment/GjcQueryStorageFragment.kt @@ -6,17 +6,23 @@ import android.view.View import android.view.ViewGroup import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager import com.lukouguoji.gjc.R import com.lukouguoji.gjc.databinding.FragmentGjcQueryStorageBinding +import com.lukouguoji.gjc.holder.GjcQueryStorageViewHolder import com.lukouguoji.gjc.viewModel.GjcQueryDetailsViewModel +import com.lukouguoji.module_base.base.CommonAdapter +import com.lukouguoji.module_base.bean.GjcStorageUse +import com.lukouguoji.module_base.http.net.NetApply /** - * 国际出港查询详情 - 库位信息Fragment (空实现) + * 国际出港查询详情 - 库位信息Fragment */ class GjcQueryStorageFragment : Fragment() { private lateinit var binding: FragmentGjcQueryStorageBinding private lateinit var viewModel: GjcQueryDetailsViewModel + private lateinit var adapter: CommonAdapter override fun onCreateView( inflater: LayoutInflater, @@ -30,9 +36,58 @@ class GjcQueryStorageFragment : Fragment() { false ) binding.lifecycleOwner = viewLifecycleOwner + + initRecyclerView() + observeData() + return binding.root } + /** + * 初始化RecyclerView + */ + private fun initRecyclerView() { + adapter = CommonAdapter( + requireContext(), + R.layout.item_gjc_query_storage, + GjcQueryStorageViewHolder::class.java + ) + + binding.rvStorageList.apply { + layoutManager = LinearLayoutManager(requireContext()) + adapter = this@GjcQueryStorageFragment.adapter + } + } + + /** + * 观察数据变化 + */ + private fun observeData() { + viewModel.storageUseList.observe(viewLifecycleOwner) { mapList -> + if (mapList.isEmpty()) { + // 显示空数据提示 + binding.rvStorageList.visibility = View.GONE + binding.llEmpty.visibility = View.VISIBLE + } else { + // Map → GjcStorageUse Bean 转换 + val beanList = mapList.map { map -> + try { + val json = NetApply.gson.toJson(map) + NetApply.gson.fromJson(json, GjcStorageUse::class.java) + } catch (e: Exception) { + e.printStackTrace() + GjcStorageUse() // 转换失败返回空对象 + } + } + + // 更新RecyclerView + binding.rvStorageList.visibility = View.VISIBLE + binding.llEmpty.visibility = View.GONE + adapter.refresh(beanList) + } + } + } + companion object { @JvmStatic fun newInstance(vm: GjcQueryDetailsViewModel) = diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryStorageViewHolder.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryStorageViewHolder.kt new file mode 100644 index 0000000..0bbb915 --- /dev/null +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryStorageViewHolder.kt @@ -0,0 +1,20 @@ +package com.lukouguoji.gjc.holder + +import android.view.View +import com.lukouguoji.gjc.databinding.ItemGjcQueryStorageBinding +import com.lukouguoji.module_base.base.BaseViewHolder +import com.lukouguoji.module_base.bean.GjcStorageUse + +/** + * 国际出港查询详情-库位信息ViewHolder + */ +class GjcQueryStorageViewHolder(view: View) : + BaseViewHolder(view) { + + override fun onBind(item: Any?, position: Int) { + val bean = getItemBean(item) ?: return + binding.bean = bean + binding.position = position // 用于显示序号和背景切换 + binding.executePendingBindings() + } +} diff --git a/module_gjc/src/main/res/layout/fragment_gjc_query_storage.xml b/module_gjc/src/main/res/layout/fragment_gjc_query_storage.xml index e7e63f4..7cc1bbd 100644 --- a/module_gjc/src/main/res/layout/fragment_gjc_query_storage.xml +++ b/module_gjc/src/main/res/layout/fragment_gjc_query_storage.xml @@ -1,19 +1,126 @@ - + + + + + + + android:orientation="vertical" + android:paddingHorizontal="15dp" + android:paddingBottom="15dp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/module_gjc/src/main/res/layout/item_gjc_query_storage.xml b/module_gjc/src/main/res/layout/item_gjc_query_storage.xml new file mode 100644 index 0000000..be587be --- /dev/null +++ b/module_gjc/src/main/res/layout/item_gjc_query_storage.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +