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() 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 { 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 { 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?) { if (suppliers.isNullOrEmpty()) { binding.rvOrderList.gone() binding.layoutEmptyView.visible() return } list.clear() list.addAll(suppliers) adapter.notifyDataSetChanged() binding.rvOrderList.visible() binding.layoutEmptyView.gone() } }