From 88b00f3fc74446a1727c93722c7b64179b45a9db Mon Sep 17 00:00:00 2001 From: zhujie <leon.zhu@cloudroam.com.cn> Date: 星期五, 18 四月 2025 17:40:45 +0800 Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/FirstApp2 --- app/src/main/java/com/example/firstapp/activity/PickupActivity.kt | 88 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 74 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt b/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt index d7dda6d..7270793 100644 --- a/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt +++ b/app/src/main/java/com/example/firstapp/activity/PickupActivity.kt @@ -5,7 +5,8 @@ import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager -import com.example.firstapp.adapter.ExpressPackageAdapter +import com.example.firstapp.R +import com.example.firstapp.adapter.PickupPackageAdapter import com.example.firstapp.core.Core import com.example.firstapp.databinding.ActivityPickupBinding import com.example.firstapp.model.ExpressPackage @@ -13,12 +14,31 @@ class PickupActivity : AppCompatActivity() { private lateinit var binding: ActivityPickupBinding - private lateinit var expressAdapter: ExpressPackageAdapter + private lateinit var expressAdapter: PickupPackageAdapter + private var stationIconResId = R.drawable.location // 默认图标 + + + // 添加类型常量 + companion object { + const val TYPE_EXPRESS = "express" + const val TYPE_REPAYMENT = "repayment" + const val TYPE_INCOME = "income" + const val TYPE_TRAIN = "train" + const val TYPE_FLIGHT = "flight" + } + + private var pageType = TYPE_EXPRESS override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityPickupBinding.inflate(layoutInflater) setContentView(binding.root) + + // 获取页面类型 + pageType = intent.getStringExtra("page_type") ?: TYPE_EXPRESS + + stationIconResId = intent.getIntExtra("station_icon_res_id", R.drawable.location) + initViews() loadData() @@ -26,10 +46,10 @@ private fun initViews() { // 初始化适配器,传入取件回调 - expressAdapter = ExpressPackageAdapter { pack -> + expressAdapter = PickupPackageAdapter { pack -> handleSinglePickup(pack) } - + binding.rvPackages.apply { layoutManager = LinearLayoutManager(this@PickupActivity) adapter = expressAdapter @@ -39,17 +59,43 @@ finish() } - // 修改底部按钮点击事件 - binding.btnPickupAll.setOnClickListener { - showPickupConfirmDialog() + // 设置底部按钮文本并添加点击事件 + binding.btnPickupAll.apply { + text = getButtonText() + setOnClickListener { + showPickupConfirmDialog() + } } + // 设置驿站图标 + binding.ivBack.setImageResource(stationIconResId) + } + private fun getConfirmMessage(): String { + return when (pageType) { + TYPE_EXPRESS -> "是否确认取出所有包裹?" + TYPE_REPAYMENT -> "是否确认处理所有还款?" + TYPE_INCOME -> "是否确认处理所有收入?" + TYPE_TRAIN -> "是否确认处理所有火车票?" + TYPE_FLIGHT -> "是否确认处理所有机票?" + else -> "是否确认处理所有项目?" + } + } + + private fun getButtonText(): String { + return when (pageType) { + TYPE_EXPRESS -> "全部取件" + TYPE_REPAYMENT -> "全部还款" + TYPE_INCOME -> "全部收款" + TYPE_TRAIN -> "全部处理票务" + TYPE_FLIGHT -> "全部处理机票" + else -> "全部处理" + } } private fun showPickupConfirmDialog() { AlertDialog.Builder(this) - .setTitle("确认取件") - .setMessage("是否确认取出所有包裹?") + .setTitle(getButtonText()) + .setMessage(getConfirmMessage()) .setPositiveButton("确认") { _, _ -> handlePickupAll() } @@ -84,7 +130,7 @@ // 清空列表 expressAdapter.submitList(emptyList()) // 更新包裹数量显示 - binding.tvPackageCount.text = "共0个包裹" + binding.tvPackageCount.text = getCountText(0) // 通知MainActivity刷新 setResult(RESULT_OK) } catch (e: Exception) { @@ -95,10 +141,21 @@ } } + private fun getCountText(count: Int): String { + return when (pageType) { + TYPE_EXPRESS -> "共${count}个包裹" + TYPE_REPAYMENT -> "共${count}笔还款" + TYPE_INCOME -> "共${count}笔收入" + TYPE_TRAIN -> "共${count}张车票" + TYPE_FLIGHT -> "共${count}张机票" + else -> "共${count}个" + } + } + private fun loadData() { val stationName = intent.getStringExtra("station_name") ?: "" val company = intent.getStringExtra("company") ?: "" - + lifecycleScope.launch { val codes = Core.code.getByKeyword(stationName) val packages = codes.map { code -> @@ -109,10 +166,13 @@ createTime = code.createTime ) } - + expressAdapter.submitList(packages) binding.tvStationName.text = stationName - binding.tvPackageCount.text = "共${packages.size}个包裹" + binding.tvPackageCount.text = getCountText(packages.size) + + // 根据PageType设置适配器的CompanyLogo处理逻辑 + expressAdapter.setPageType(pageType) } } -} \ No newline at end of file +} \ No newline at end of file -- Gitblit v1.9.3