feat: fix int exp arrive sub list

This commit is contained in:
2026-01-26 13:43:49 +08:00
parent 5f31cf5274
commit 5e1e9e58a2
7 changed files with 185 additions and 8 deletions

View File

@@ -0,0 +1,26 @@
package com.lukouguoji.gjc.holder
import android.view.View
import com.lukouguoji.gjc.databinding.ItemIntExpArriveSubBinding
import com.lukouguoji.module_base.base.BaseViewHolder
import com.lukouguoji.module_base.bean.GjcHaWb
/**
* 国际出港-出港理货 子订单(分单) ViewHolder
*/
class IntExpArriveSubViewHolder(view: View) :
BaseViewHolder<GjcHaWb, ItemIntExpArriveSubBinding>(view) {
override fun onBind(item: Any?, position: Int) {
val bean = getItemBean(item) ?: return
binding.bean = bean
binding.position = position + 1 // 序号从 1 开始
binding.executePendingBindings()
// checkbox点击切换选择状态
binding.ivCheckbox.setOnClickListener {
bean.checked.set(!bean.checked.get())
binding.executePendingBindings()
}
}
}

View File

@@ -37,8 +37,8 @@ class IntExpArriveViewHolder(view: View) :
// ========== 初始化子列表 RecyclerView ==========
setCommonAdapter(
binding.rvSub,
IntExpTallySubViewHolder::class.java,
R.layout.item_int_exp_tally_sub
IntExpArriveSubViewHolder::class.java,
R.layout.item_int_exp_arrive_sub
)
// 刷新子列表数据

View File

@@ -101,9 +101,9 @@
android:layout_height="36dp"
android:layout_marginStart="8dp"
android:onClick="@{()-> viewModel.toggleAllExpand()}"
android:padding="2dp"
android:padding="4dp"
android:scaleType="fitCenter"
loadImage="@{viewModel.isAllExpanded ? R.mipmap.img_up : R.mipmap.img_down}"
loadImage="@{viewModel.isAllExpanded ? R.drawable.ic_new_expand : R.drawable.ic_new_expand}"
android:contentDescription="展开/收起全部子列表" />
</LinearLayout>

View File

@@ -108,13 +108,13 @@
<!-- 全局展开/收起按钮 -->
<ImageView
loadImage="@{viewModel.isAllExpanded ? R.mipmap.img_up : R.mipmap.img_down}"
loadImage="@{viewModel.isAllExpanded ? R.drawable.ic_new_expand : R.drawable.ic_new_expand}"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginStart="8dp"
android:contentDescription="展开/收起全部子列表"
android:onClick="@{()-> viewModel.toggleAllExpand()}"
android:padding="2dp"
android:padding="4dp"
android:scaleType="fitCenter" />
</LinearLayout>

View File

@@ -102,9 +102,9 @@
android:layout_height="36dp"
android:layout_marginStart="8dp"
android:onClick="@{()-> viewModel.toggleAllExpand()}"
android:padding="2dp"
android:padding="4dp"
android:scaleType="fitCenter"
loadImage="@{viewModel.isAllExpanded ? R.mipmap.img_up : R.mipmap.img_down}"
loadImage="@{viewModel.isAllExpanded ? R.drawable.ic_new_expand : R.drawable.ic_new_expand}"
android:contentDescription="展开/收起全部子列表" />
</LinearLayout>

View File

@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:loadImage="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="bean"
type="com.lukouguoji.module_base.bean.GjcHaWb" />
<variable
name="position"
type="Integer" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginVertical="8dp"
android:paddingHorizontal="10dp">
<!-- 选项 - 圆形checkbox -->
<ImageView
android:id="@+id/iv_checkbox"
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_gray : @drawable/radiobtn_unchecked_gray}"
android:layout_width="0dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:layout_weight="0.5"
app:tint="@color/color_66"
android:src="@drawable/radiobtn_unchecked_style" />
<!-- 分单号 (前缀-编号-H编号) -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.2"
android:gravity="center"
android:text="@{bean.hno ?? ``}"
android:textColor="@color/colorPrimary"
android:textSize="14sp"
android:textStyle="bold" />
<!-- 件数 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center"
android:text="@{String.valueOf(bean.hpc ?? bean.pc)}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 重量 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center"
android:text="@{String.valueOf((int)(bean.hweight ?? bean.weight))}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 申报状态 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{bean.arrivalStatus ?? ``}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 品名(中) -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{bean.goodsCn ?? bean.goods}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 申报次数 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:gravity="center"
android:text="@{bean.arrivalSCount != null ? String.valueOf((int)bean.arrivalSCount.doubleValue()) : `0`}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 申报费率 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:gravity="center"
android:text="@{bean.arrivalSRate != null ? String.valueOf(bean.arrivalSRate) : `0`}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 删除次数 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:gravity="center"
android:text="@{bean.arrivalDCount != null ? String.valueOf((int)bean.arrivalDCount.doubleValue()) : `0`}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
<!-- 删除费率 -->
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:gravity="center"
android:text="@{bean.arrivalDRate != null ? String.valueOf(bean.arrivalDRate) : `0`}"
android:textColor="@color/text_normal"
android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/c999999" />
</LinearLayout>
</layout>