package com.example.smart.ui.project.equiplist.check
|
|
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.viewModelScope
|
import com.example.basecore.base.BaseContextViewModel
|
import com.example.basecore.net.http.Result
|
import com.example.smart.enumlist.DeviceType
|
import com.example.smart.reqeust.RetrofitClient
|
import com.example.smart.ui.exclude.bean.ByPassInfoBean
|
import com.example.smart.ui.projectevent.bean.ProjectEventBean
|
import com.example.smart.ui.projectevent.bean.SystemTreeBean
|
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.launch
|
|
|
class CheckDeviceViewModel : BaseContextViewModel() {
|
|
|
val checkDeviceInfo = MutableLiveData<List<SystemTreeBean>>()
|
val itemBean = MutableLiveData<List<ProjectEventBean>>()
|
|
val submitResult = MutableLiveData<String>()
|
|
/**
|
* 设备体系
|
*/
|
fun callDeviceSystem(taskId: Int, deviceType: DeviceType, fail: (String) -> Unit) {
|
viewModelScope.launch(Dispatchers.Main) {
|
val result =
|
safeCall { execute(RetrofitClient.api.callDeviceSystem(taskId, deviceType)) }
|
if (result is Result.Success) {
|
checkDeviceInfo.value = result.data.children
|
} else if (result is Result.Error) {
|
fail(result.exception.message ?: "未知错误")
|
}
|
}
|
}
|
|
|
fun submit(taskId: String, bean: ByPassInfoBean, fail: (String) -> Unit) {
|
viewModelScope.launch(Dispatchers.Main) {
|
val result =
|
safeCall { callNoResult(RetrofitClient.api.submitByPassInfo(taskId, bean)) }
|
if (result is Result.SuccessNone) {
|
submitResult.value = result.status
|
} else if (result is Result.Error) {
|
fail(result.exception.message ?: "未知错误")
|
}
|
}
|
}
|
|
|
/**
|
* 具体问题列表
|
*/
|
fun callSystemPro(taskId: String, path: String, fail: (String) -> Unit) {
|
|
viewModelScope.launch(Dispatchers.Main) {
|
val result = safeCall { callList(RetrofitClient.api.callDeviceTreeList(path, taskId)) }
|
if (result is Result.Success) {
|
itemBean.value = result.data
|
} else if (result is Result.Error) {
|
fail(result.exception.message ?: "未知错误")
|
}
|
}
|
}
|
|
}
|