18034727885
2026-04-14 370014cbb9ec1ef64e7e42bb4f9a12671461d8e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.xw.yunwei.ui.user.mine.info
 
import android.app.Application
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.map
import com.xw.common.base.BaseViewModel
import com.xw.common.utils.BindUtils.getUrl
import com.xw.common.utils.KeyPreferences
import com.xw.common.utils.MMKVManager
import com.xw.common.viewAdapter.ImageDefault
import com.xw.yunwei.model.UserInfo
import com.xw.yunwei.net.UserRepository
import org.koin.core.component.inject
import kotlin.getValue
 
class UserInfoVM(application: Application) : BaseViewModel(application) {
 
    val userRepository: UserRepository by inject()
    val userInfo = MutableLiveData(MMKVManager.getInstance().getModel<UserInfo>(KeyPreferences.USER))
    val avatar = MutableLiveData(ImageDefault("", com.xw.common.R.drawable.svg_avatar))
 
    val name = userInfo.map { it?.nickName }
    val sex = MutableLiveData("")
    val phone = userInfo.map { it?.phoneNumber }
    val team = MutableLiveData("")
    val captain = MutableLiveData("")
 
    fun getInfo() {
        launchRequestFlow(
            showLoading = false,
            flowBlock = { userRepository.getUserInfo() },
            onCollect = {
                avatar.postValue(avatar.value!!.apply { this.url = it?.avatar?.getUrl() ?: "" })
                captain.postValue(it?.fleet?.fleetLeaderName ?: "无")
                team.postValue(it?.fleet?.fleetName ?: "无")
                sex.postValue(if(it?.sex == 1) "男" else "女")
            }
        )
    }
}