79 lines
2.5 KiB
Kotlin
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) {
|
|
|
|
}
|
|
}
|
|
|