From ab4b1618c8ca2352c492fc9c57a2e2250927bc59 Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Tue, 13 Jan 2026 11:33:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=BD=E9=99=85=E5=87=BA=E6=B8=AF=20?= =?UTF-8?q?=E5=87=BA=E6=B8=AF=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lukouguoji/module_base/bean/GjcMaWb.kt | 5 ++- .../viewModel/IntExpStorageUseViewModel.kt | 32 +++++++++++++++++++ .../layout/activity_int_exp_storage_use.xml | 15 ++++++++- .../res/layout/item_int_exp_storage_use.xml | 4 +-- .../layout/item_int_exp_storage_use_sub.xml | 4 +-- 5 files changed, 52 insertions(+), 8 deletions(-) diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcMaWb.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcMaWb.kt index 0598e48..3169f21 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcMaWb.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcMaWb.kt @@ -109,7 +109,6 @@ data class GjcMaWb( // ==================== 关联列表(非数据库字段,用于展示) ==================== var haWbList: List? = null, // 分单列表 - @Transient var storageUseList: List? = null, // 库位使用列表 @Transient var attachList: List? = null // 附件列表 @@ -277,10 +276,10 @@ data class GjcStorageUse( var location: String? = null, // 库位号 var storageCode: String? = null, // 库位号(兼容字段) var uld: String? = null, // 板箱号 - var inDate: Date? = null, // 入库时间 + var inDate: String? = null, // 入库时间 var inOpId: String? = null, // 入库人 var inId: String? = null, // 入库人(兼容字段) - var outDate: Date? = null, // 出库时间 + var outDate: String? = null, // 出库时间 var outOpId: String? = null, // 出库人 var outId: String? = null // 出库人(兼容字段) ) { diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt index 37efd48..207ec75 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt @@ -42,6 +42,14 @@ class IntExpStorageUseViewModel : BasePageViewModel() { // ========== 全选状态 ========== val isAllChecked = MutableLiveData(false) + // ========== 全局展开状态 ========== + /** + * 全局展开状态 + * - true: 全部展开 + * - false: 全部收起 + */ + val isAllExpanded = MutableLiveData(false) + init { // 初始化清仓综合结果列表(根据实际需求配置) clearResultList.value = listOf( @@ -82,6 +90,28 @@ class IntExpStorageUseViewModel : BasePageViewModel() { pageModel.rv?.commonAdapter()?.notifyDataSetChanged() } + /** + * 切换全局展开/收起状态 + */ + fun toggleAllExpand() { + val list = pageModel.rv?.commonAdapter()?.items as? List ?: return + + // 切换全局状态 + val shouldExpand = !isAllExpanded.value!! + isAllExpanded.value = shouldExpand + + // 更新所有列表项的 showMore 状态 + list.forEach { bean -> + // 只有当有子列表时才设置展开状态 + if (!bean.storageUseList.isNullOrEmpty()) { + bean.showMore.set(shouldExpand) + } + } + + // 刷新列表UI + pageModel.rv?.commonAdapter()?.notifyDataSetChanged() + } + /** * 扫码运单号 */ @@ -180,6 +210,8 @@ class IntExpStorageUseViewModel : BasePageViewModel() { // 手动处理 PageInfo 数据 pageModel.handleDataList(result.list) pageModel.haveMore.postValue((result.pages) > pageModel.page) + // 数据加载完成后,重置全局展开状态为收起 + isAllExpanded.value = false } } diff --git a/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml b/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml index fa4ff2b..7c0acf8 100644 --- a/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml +++ b/module_gjc/src/main/res/layout/activity_int_exp_storage_use.xml @@ -7,6 +7,8 @@ + + @@ -87,7 +89,7 @@ + + + diff --git a/module_gjc/src/main/res/layout/item_int_exp_storage_use.xml b/module_gjc/src/main/res/layout/item_int_exp_storage_use.xml index df61f56..3a221c7 100644 --- a/module_gjc/src/main/res/layout/item_int_exp_storage_use.xml +++ b/module_gjc/src/main/res/layout/item_int_exp_storage_use.xml @@ -156,7 +156,7 @@ @@ -81,7 +81,7 @@ android:layout_gravity="center_vertical" android:layout_weight="1.5" android:gravity="center" - android:text="@{bean.outDate != null ? bean.outDate.toString() : ``}" + android:text="@{bean.outDate ?? ``}" android:textColor="@color/text_normal" android:textSize="14sp" />