Files
Inbound20260114/app/src/main/java/com/sw/inbound/viewmodel/PurchaseOrderViewModel.kt
T
2026-02-12 12:44:30 +08:00

79 lines
2.5 KiB
Kotlin

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<List<SupplierInfo>?>(emptyList())
val supplierList: StateFlow<List<SupplierInfo>?> = _supplierList
private val _firstOperate = MutableStateFlow<Boolean>(true)
val firstOperate:StateFlow<Boolean> = _firstOperate
fun updateFirstState(state: Boolean) {
_firstOperate.value = state
}
/**
* 获取采购订单-供应商列表
*/
fun getOrderListNew(pageNum: Int = 1, pageSize: Int = 5, block:(List<SupplierInfo>?)-> 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) {
}
}