package com.sw.inbound.viewmodel import android.os.Handler import android.os.Looper import com.sw.inbound.model.response.SupplierInfo import com.sw.inbound.repository.RemoteRepository import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import timber.log.Timber import javax.inject.Inject /** * 采购订单 */ @HiltViewModel class PurchaseOrderViewModel @Inject constructor( private val repository: RemoteRepository ) : BaseViewModel(repository) { /** * 采购订单-供应商列表 */ private val _supplierList = MutableStateFlow?>(emptyList()) val supplierList: StateFlow?> = _supplierList private val _firstOperate = MutableStateFlow(true) val firstOperate:StateFlow = _firstOperate fun updateFirstState(state: Boolean) { _firstOperate.value = state } /** * 获取采购订单-供应商列表 */ fun getOrderListNew(pageNum: Int = 1, pageSize: Int = 5, block:(List?)-> Unit) { launch { val response = repository.getReceiveList(pageNum, pageSize) block( if (parseResponse(response)) response.result else null ) } } fun getOrderList(pageNum: Int = 1, pageSize: Int = 5) { if (pageNum != 1) { launch { updateMoreLoading(true) val response = repository.getReceiveList(pageNum, pageSize) Handler(Looper.getMainLooper()).postDelayed({ updateMoreLoading(false) }, 1000) if (parseResponse(response)) { response.result?.let { updateCanLoadMore(it.size >= pageSize) Timber.d("加载更多 canLoadMore =${it.size >= pageSize}") _supplierList.value = _supplierList.value?.plus(it) } } updateFirstState(false) } } else { launchWithLoading { val response = repository.getReceiveList(pageNum, pageSize) if (parseResponse(response)) { _supplierList.value = response.result ?: emptyList() } else { _supplierList.value = null } updateFirstState(false) } } } override fun handleSensorScale(weight: Double) { } }