From 20bab628ee5eca2ad75f8c8b3ca562aa9593ea6c Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Mon, 15 Dec 2025 17:47:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20opt=20=E5=87=BA=E6=B8=AF=E7=BB=84?= =?UTF-8?q?=E8=A3=85=20=E7=BB=84=E8=A3=85=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assemble/IntExpAssembleStartActivity.kt | 3 ++ .../viewModel/IntExpAssembleStartViewModel.kt | 34 +++++++++++++++++++ .../activity_int_exp_assemble_start.xml | 7 ++-- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt index a851ee9..75e4dd5 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/page/assemble/IntExpAssembleStartActivity.kt @@ -53,6 +53,9 @@ class IntExpAssembleStartActivity : // 加载组装位置数据(从API) viewModel.loadAssemblePosition() + // 加载组装人列表 + viewModel.loadAssemblerList() + // 观察数据变化 observeData() } diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt index 4863274..713b810 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpAssembleStartViewModel.kt @@ -8,10 +8,13 @@ import com.lukouguoji.gjc.holder.AssembleWaybillViewHolder import com.lukouguoji.module_base.base.BaseViewModel import com.lukouguoji.module_base.bean.* import com.lukouguoji.module_base.common.Constant +import com.lukouguoji.module_base.db.perference.SharedPreferenceUtil import com.lukouguoji.module_base.http.net.NetApply +import com.lukouguoji.module_base.ktx.launchCollect import com.lukouguoji.module_base.ktx.launchLoadingCollect import com.lukouguoji.module_base.ktx.showToast import com.lukouguoji.module_base.model.ScanModel +import dev.utils.app.info.KeyValue /** * 国际出港-开始组装ViewModel(静态数据) @@ -45,6 +48,9 @@ class IntExpAssembleStartViewModel : BaseViewModel() { // ========== 运单信息 ========== val waybillInfo = MutableLiveData(WaybillInfoBean()) + // ========== 组装人列表 ========== + val assemblerList = MutableLiveData>(emptyList()) + /** * 初始化模拟数据(已废弃) */ @@ -175,6 +181,34 @@ class IntExpAssembleStartViewModel : BaseViewModel() { } } + /** + * 加载组装人列表 + */ + fun loadAssemblerList() { + launchCollect({ NetApply.api.getIntExpAssemblerList() }) { + onSuccess = { result -> + val list = result.data ?: emptyList() + // 转换为 KeyValue 列表 + val keyValueList = list.map { KeyValue(it, it) } + assemblerList.value = keyValueList + + // 获取当前登录用户名 + val currentUserName = SharedPreferenceUtil.getString(Constant.Share.userName) + + // 如果当前用户名在列表中,设置为默认值;否则保持为空(显示 hint) + if (currentUserName.isNotEmpty() && list.contains(currentUserName)) { + waybillInfo.value?.operator = currentUserName + waybillInfo.value = waybillInfo.value // 触发LiveData更新 + } + // 注意:不匹配时不需要显式设置为空,因为初始值已经是空字符串 + } + onFailed = { code, message -> + showToast("加载组装人列表失败: $message") + assemblerList.value = emptyList() + } + } + } + /** * 卸货按钮点击 diff --git a/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml b/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml index 6fed540..342eacd 100644 --- a/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml +++ b/module_gjc/src/main/res/layout/activity_int_exp_assemble_start.xml @@ -370,11 +370,12 @@ android:layout_weight="1" />