- 注释掉全部 Compose UI 代码(ui/、theme/、NavController、MainActivity、InitActivity 等) - BorderExt、TextExt、ToastUtils、LoadingState 中的 Compose 逻辑全部注释 - LoadingState 保留 show()/hide() 空方法避免编译报错 - 注释 SensorScaleUtils、BaseViewModel、DeviceViewModel 中的 ToastUtils 调用 - BootReceiver、CrashHandler 中 MainActivity 替换为 HomeActivity - UserViewModel、PurchaseOrderActivity 删除残余 Compose import - build.gradle.kts 替换为非 Compose 的 activity-ktx 和 coil 依赖 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
95 lines
3.2 KiB
Kotlin
95 lines
3.2 KiB
Kotlin
package com.sw.inbound.activity
|
|
|
|
import android.annotation.SuppressLint
|
|
import android.os.Bundle
|
|
import com.sw.inbound.base.BaseActivity
|
|
import androidx.activity.viewModels
|
|
import androidx.lifecycle.lifecycleScope
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import com.sw.inbound.R
|
|
import com.sw.inbound.adapter.PurchaseOrderAdapter
|
|
import com.sw.inbound.databinding.ActivityPurchaseOrderBinding
|
|
import com.sw.inbound.dialog.Loading
|
|
import com.sw.inbound.model.response.SupplierInfo
|
|
import com.sw.inbound.utils.ext.clickWithDebounce
|
|
import com.sw.inbound.utils.ext.gone
|
|
import com.sw.inbound.utils.ext.startActivity
|
|
import com.sw.inbound.utils.ext.visible
|
|
import com.sw.inbound.viewmodel.PurchaseOrderViewModel
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
import kotlinx.coroutines.launch
|
|
|
|
/**
|
|
* 采购单列表
|
|
*/
|
|
@AndroidEntryPoint
|
|
class PurchaseOrderActivity : BaseActivity() {
|
|
|
|
private var list = mutableListOf<SupplierInfo>()
|
|
private val adapter by lazy {
|
|
PurchaseOrderAdapter(list).apply {
|
|
setOnItemClickListener { adapter, view, position ->
|
|
openReceiptPage(list[position])
|
|
}
|
|
addOnItemChildClickListener(R.id.btnReceive) { adapter, view, position ->
|
|
openReceiptPage(list[position])
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun openReceiptPage(item: SupplierInfo) {
|
|
startActivity<ReceiptActivity> {
|
|
putExtra(GoodsListActivity.ID, item.id)
|
|
putExtra(GoodsListActivity.SUPPLIER_ID, item.supplierId)
|
|
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, true)
|
|
//putExtra(GoodsListActivity.IS_NEW_RECEIPT, false)
|
|
}
|
|
}
|
|
|
|
private lateinit var binding: ActivityPurchaseOrderBinding
|
|
val viewModel: PurchaseOrderViewModel by viewModels()
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
binding = ActivityPurchaseOrderBinding.inflate(layoutInflater)
|
|
setContentView(binding.root)
|
|
binding.rvOrderList.let {
|
|
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
|
|
it.adapter = adapter
|
|
}
|
|
binding.btnBack.setOnClickListener { finish() }
|
|
binding.btnAddReceipt.clickWithDebounce {
|
|
startActivity<SelfProcurementActivity> {
|
|
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, false)
|
|
}
|
|
}
|
|
}
|
|
|
|
override fun onResume() {
|
|
super.onResume()
|
|
Loading.show(this)
|
|
viewModel.getOrderListNew(pageNum = 1, pageSize = 100) { suppliers ->
|
|
runOnUiThread {
|
|
binding.root.postDelayed({
|
|
Loading.dismiss()
|
|
}, 600)
|
|
updateSupplierList(suppliers)
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressLint("NotifyDataSetChanged")
|
|
private fun updateSupplierList(suppliers: List<SupplierInfo>?) {
|
|
if (suppliers.isNullOrEmpty()) {
|
|
binding.rvOrderList.gone()
|
|
binding.layoutEmptyView.visible()
|
|
return
|
|
}
|
|
list.clear()
|
|
list.addAll(suppliers)
|
|
adapter.notifyDataSetChanged()
|
|
binding.rvOrderList.visible()
|
|
binding.layoutEmptyView.gone()
|
|
}
|
|
|
|
} |